【问题标题】:How to add an existing folder with files to SVN?如何将包含文件的现有文件夹添加到 SVN?
【发布时间】:2013-03-08 18:06:55
【问题描述】:

如何将没有版本控制的文件夹添加到特定的 SVN 位置?我经常开始写代码,只有在我有几个包含代码文件的文件夹后,我才会将它添加到 SVN。

我通常做的是:

  1. svn co 我想在其中创建一个新文件夹来存储我的代码的父目录。
  2. svn mkdir 来创建我想要放置代码的目录。
  3. 复制并粘贴我的代码。
  4. svn 提交
  5. 删除我当前的工作代码目录。
  6. 使用 svn co 重新创建我的工作代码目录。

【问题讨论】:

标签: svn


【解决方案1】:

假设我在~/local_dir/myNewApp 目录中有代码,我想将其放在“https://svn.host/existing_path/myNewApp”下(同时可以忽略一些二进制文件、供应商库等)。

  1. 在存储库中创建一个空文件夹svn mkdir https://svn.host/existing_path/myNewApp
  2. 进入项目的父目录,cd ~/local_dir
  3. 检查本地文件夹上的空目录。不要害怕 - 您在本地拥有的文件不会被删除。 svn co https://svn.host/existing_path/myNewApp。如果您的文件夹在本地与存储库中的名称不同,则必须将其指定为附加参数。
  4. 您可以看到svn st 现在会将您的所有文件显示为?,这意味着它们当前不受版本控制
  5. 对要添加到存储库的文件执行svn add,并将其他文件添加到svn:ignore。当您只想选择性地添加一些文件/文件夹时,您可能会发现 svn help add 的一些有用选项,例如 --parents--depth empty
  6. 提交svn ci

【讨论】:

  • 第 5 点:您可以在 bash 中以这种方式添加工作目录的所有文件/目录:find . -name .svn -prune -o -print0|xargs -0 svn add
  • 我见过的将新东西导入 svn 的最佳方法。
  • 你是怎么做的:“如果你的文件夹在本地的名字和 repo 不同,你必须把它指定为附加参数”
  • @KristofPal : svn co https://svn.host/existing_path/myNewApp ~/local_dir/localNameOfFolder
  • 谢谢@qbolec,“不要害怕”。对所有“最佳答案”+1。作为对那些可能仍然害怕的人的提示:如果您仍然害怕,您可以备份您的工作。
【解决方案2】:

如果我正确理解了您的用例,我建议尝试使用 svn add 将新文件夹置于版本下,请参阅here。以下将在版本控制下递归地添加带有文件的新文件夹(如果您在有效的工作副本中):

svn add new_folder
svn commit -m "Add New folder to the project"

如果您不在工作副本中,请使用 svn checkout 创建它,将 new_folder 复制到那里并执行上述步骤。

试试svn import,见here;以下将创建一个新文件夹并将文件上传到存储库:

svn import -m "Import new folder to the project" new_folder \
        http://SVN_REPO/repos/trunk/new_folder

还要注意:

导入数据后,注意原来的树不在version下 控制。要开始工作,您仍然需要 svn checkout a fresh 树的工作副本

【讨论】:

  • 但父文件夹不受版本控制。它怎么知道把它放在svn仓库的什么地方
  • 我不清楚你的文件夹在哪里,你不是在“工作副本”中工作吗?
  • 我已有一个带有文件夹的 svn 存储库。我创建了非 svn 文件和文件夹,并希望将它们添加到存储库中。我现在这样做的方法是检查上面我想要放置我的项目的目录。然后我将粘贴复制到结帐位置并在那里执行 svn add。
  • @Siecje 我想我现在明白你的意思了
  • 所以我必须进行结帐,这意味着我必须删除文件并从 SVN 重新下载它们?那么对于网站文件,我这样做时网站需要关闭一秒钟?
【解决方案3】:

我不使用命令。您应该可以使用 GUI 执行此操作:

  • 右键单击“我的文档”文件夹中的空白区域,选择 TortoiseSVN > Repo-browser。
  • 输入http://subversion...(您将保存到的Subversion 服务器/目录的URL 路径)作为路径并选择确定
  • 右键单击 Repo 中的根目录并选择添加文件夹。为其命名您的项目并创建它。
  • 在 Repo 浏览器中右键单击项目文件夹并选择 Checkout。 Checkout 目录将是您的Visual Studio\Projects\{your project} 文件夹。选择确定。
  • 您将收到文件夹不为空的警告。说 Yes 以签出/导出到该文件夹​​ - 它不会覆盖您的项目文件。
  • 打开您的项目文件夹。您将在与您的 VS 项目关联但尚未添加到 Subversion 的文件夹上看到问号。使用 Ctrl + 单击选择这些文件夹,然后右键单击所选项目之一并选择 TortoiseSVN > 添加
  • 在提示符下选择“确定”
  • 您的文件应该添加。在 Add Finished 上选择 OK!对话框
  • 右键单击文件夹的空白区域并选择刷新。现在,您会在文件夹/文件上看到“+”图标
  • 再次右键单击文件夹中的空白区域并选择SVN Commit
  • 添加有关您所提交内容的消息,然后单击“确定”

【讨论】:

    【解决方案4】:

    在 Windows 7 中,我这样做了:

    1. 您是否安装了 SVN 和 Tortoise SVN?如果没有,请立即使用 Google 搜索。
    2. 转到您可能有其他存储库(存储库的缩写)的 SVN 文件夹(或者如果您从头开始创建一个,请选择位置 C 驱动器、D 驱动器等或网络路径)。
    3. 创建一个新文件夹来存储您的新存储库。将其命名为与您的项目名称相同的名称
    4. 右键文件夹,选择 Tortoise SVN -> Create Repository here
    5. 同意创建文件夹结构
    6. 单击确定。您应该会在新文件夹/repo 旁边看到一个看起来像“wave”的新图标
    7. 右键单击新的 repo 并选择 SVN Repo Browser
    8. 右键单击“主干”
    9. 选择添加文件夹...并指向您正在开发的项目的文件夹结构。
    10. 单击确定,SVN 将添加您的文件夹结构。请耐心等待!看起来 SVN 已经崩溃/冻结。别担心。它正在发挥作用。

    完成!

    【讨论】:

      【解决方案5】:

      如果打算将本地/工作副本添加到 SVN,我以前是这样做的。

      注意:我使用TortoiseSVN 客户端,这些步骤假设您已经安装了 TortoiseSVN 客户端。

      1. 我在本地有一个项目 (Test-4.2.2)。我想将其上传/添加到 SVN 存储库。
      2. 使用 TortoiseSVN 存储库浏览器,我创建了一个空目录“Test-4.2.2”
      3. 在本地,我将现有的“Test-4.2.2”目录重命名为“Test-4.2.2.1”(临时)
      4. 将空的“Test-4.2.2”从 SVN 签出到本地
      5. 将4.2.2.1下的所有子目录复制到这个结帐目录4.2.2
      6. 现在,右键单击“Test-4.2.2”并提交。
      7. 删除临时文件夹“Test-4.2.2.1”

      【讨论】:

        【解决方案6】:

        3 个步骤:

        • 打开“回购浏览器”(使用您父文件夹的链接)。
        • 右击选择“添加文件夹”。
        • 浏览到您的文件夹。

        【讨论】:

        • 你不能添加一个不存在的文件夹,这种方式。 “添加文件夹”将为您提供一个资源管理器窗口,以便您可以指向现有文件夹,然后提供一个提交窗口,以便您可以将其添加到 Subversion。它不是为了在本地创建一个新文件夹——这仍然需要手动完成,并在那里填充,然后这可以用于将其内容提交给 Subversion。这只是故事的一半。
        【解决方案7】:

        让我们试试吧..它对我有用..

        svn add * --force
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-30
          • 1970-01-01
          • 1970-01-01
          • 2016-02-20
          相关资源
          最近更新 更多