如何将包含文件的现有文件夹添加到SVN?

时间:2013-03-19 20:47:24

标签: svn

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

我通常做的是:

  1. svn co <​​/ strong>我要创建一个新文件夹来存储我的代码的父目录。
  2. svn mkdir 制作我想要输入代码的目录。
  3. 复制并粘贴我的代码。
  4. svn commit
  5. 删除我当前的工作代码目录。
  6. 使用 svn co <​​/ strong>重新创建我的工作代码目录。

7 个答案:

答案 0 :(得分:113)

假设我在目录~/local_dir/myNewApp中有代码,我想把它放在'https://svn.host/existing_path/myNewApp'下(虽然可以忽略一些二进制文件,供应商库等)。

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

答案 1 :(得分:54)

如果我正确理解了您的使用案例,建议您尝试使用 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

另请注意:

  

导入数据后,请注意原始树不在版本之下   控制。要开始工作,你仍然需要svn checkout一个新的   树的工作副本

答案 2 :(得分:7)

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

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

答案 3 :(得分:1)

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

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

  1. 我在当地有一个项目(Test-4.2.2)。我想上传/添加到SVN存储库。
  2. 使用TortoiseSVN repo-browser,我创建了一个空目录,&#34; Test-4.2.2&#34;
  3. 在我当地,我改名现有的&#34; Test-4.2.2&#34;目录到&#34;测试-4.2.2.1&#34; (临时)
  4. 检查空的&#34; Test-4.2.2&#34;从SVN到您当地的
  5. 将4.2.2.1下的所有子目录复制到此结帐目录4.2.2
  6. 现在,右键单击&#34; Test-4.2.2&#34;并提交。
  7. 删除临时文件夹,&#34; Test-4.2.2.1&#34;

答案 4 :(得分:1)

在Windows 7中,我这样做了:

  1. 你安装了SVN和Tortoise SVN吗?如果没有,谷歌他们现在就这样做。
  2. 转到您的SVN文件夹,在那里您可能有其他存储库(存储库的缩写)(或者如果您从头开始创建一个,请选择位置C驱动器,D驱动器等或网络路径)。
  3. 创建一个新文件夹以存储新存储库。将其命名为与项目标题相同的名称
  4. 右键单击该文件夹,然后选择Tortoise SVN - &gt;在此创建存储库
  5. 声明创建文件夹结构
  6. 单击“确定”。您应该会在新文件夹/ repo旁边看到一个看起来像“wave”的新图标
  7. 右键单击新仓库并选择SVN Repo Browser
  8. 右键点击“trunk”
  9. 选择“添加文件夹...”并指向正在开发的项目的文件夹结构。
  10. 单击确定,SVN将添加您的文件夹结构。请耐心等待!看起来SVN已经崩溃/冻结。别担心。它正在开展工作。
  11. 完成!

答案 5 :(得分:0)

3个步骤:

  • 打开&#34; Repo浏览器&#34; (使用yr父文件夹的链接)。
  • 右键单击选择&#34;添加文件夹&#34;。
  • 浏览到您的文件夹。

enter image description here

答案 6 :(得分:0)

尝试一下。它对我有用。

svn add * --force