2013-03-19 145 views
57

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

我最常做的是:

  1. SVN共同我想要做一个新的文件夹来存储我的代码的父目录。
  2. svn mkdir使目录我想把我的代码英寸
  3. 复制并粘贴我的代码。
  4. svn commit
  5. 删除我目前的工作代码目录。
  6. 使用svn co重新创建我的工作代码目录。
+2

可能重复http://stackoverflow.com/questions/2431389/import-files-directly-to-svn-repo-without-checking-out-first – pmod 2013-03-20 20:37:36

回答

86

比方说,我有一些代码在目录~/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
+0

更好的答案。谢谢 – Amir 2015-07-15 09:49:29

+0

关于第5点:你可以在bash中用这种方式添加工作目录的所有文件/目录:'find。 -name.svn -prune -o -print0 | xargs -0 svn add' – 2015-09-21 14:47:09

+1

我曾经见过的用于获取svn新内容的最佳方法。 – 2015-10-28 13:03:06

45

如果我理解正确的您的使用情况下,我建议使用SVN添加把下版本新的文件夹试试,看看here。下面将添加使用文件的新文件夹递归版本控制之下(如果你是合法而有效的工作副本):

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

如果你不是在一个工作副本,与svn签创建,复制new_folder有并执行上述步骤。

OR

尝试SVN进口,看到here;下面将创建一个新的文件夹和文件上传到存储库:

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

还要注意的是:

导入数据后,请注意,原来的树是不是版本 控制之下。要开始工作,你还是需要运行svn checkout树的新鲜 工作副本

+0

但父文件夹不受版本控制。它如何知道把它放在svn版本库里 – Siecje 2013-03-19 22:09:07

+0

我不清楚你的文件夹在哪里,你是不是工作在“工作副本”? – pmod 2013-03-19 22:13:24

+0

我有一个已经存在的svn仓库和文件夹。我创建了非svn文件和文件夹,并希望将它们添加到存储库。我现在这样做的方式是在上面的目录中签出我想要放置项目的目录。然后我将粘贴复制到结帐位置,然后在那里添加svn。 – Siecje 2013-03-20 00:15:39

1

如果目的是增加本地/工作拷贝到SVN,我用来做什么的以下方式。

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

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

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

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

3个步骤:

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

enter image description here

+0

这种方式不能添加不存在的文件夹。 “添加文件夹”将为您提供一个资源管理器窗口,以便您可以指向现有的文件夹,然后提供一个提交窗口,以便将其添加到Subversion。这不是在本地创建一个新文件夹 - 这仍然需要手动完成,并在那里填充,然后这可以用于将其内容提交到Subversion。这只给了一半的故事。 – vapcguy 2017-09-11 16:54:07

0

在Windows 7我这样做:

  1. 您是否安装SVN和乌龟SVN?如果不是的话,现在就谷歌他们这样做。
  2. 转到您的SVN文件夹,您可能有其他仓库(仓库的简称)(或者从头开始创建仓库,选择仓库C盘,D盘等或网络路径)。
  3. 创建一个新文件夹来存储您的新存储库。称它为相同的名称,项目名称
  4. 右键单击该文件夹并选择乌龟SVN - >此创建版本库
  5. 说是创建的文件夹结构
  6. 单击确定。您应该看到一个新的图标看上去像一个“波”旁边的新的文件夹/回购
  7. 右键单击新的回购协议,并选择SVN库浏览器
  8. 右键点击“树干”
  9. 选择添加文件夹...和指向正在开发中的项目的文件夹结构。
  10. 点击确定,SVN会将您的文件夹结构添加进来。请耐心等待!它看起来像SVN崩溃/冻结。别担心。它正在做它的工作。

完成!

相关问题