移动目录与历史

我有一个像这样的SVN结构:

/Projects /Project1 /Project2 /someFolder /Project3 /Project4 

我想将所有项目移动到/ Projects文件夹中,这意味着我想将Projects 3和4从/ someFolder移动到/ projects文件夹中。

警告:我想保留完整的历史。 我假设每一个客户都必须从新的位置再次检查这些东西,这很好,但是我仍然想知道在没有完全破坏历史的情况下移动目录最简单的方法是什么?

如果有问题,Subversion 1.5。

 svn help rename 

在颠覆中移动/重命名保持历史不变。

  svn移动SRC DST 
  $ svn move -m“移动文件”http://svn.red-bean.com/repos/foo.c http://svn.red-bean.com/repos/bar.c 

svn移动将保持你的历史。

乌龟SVN支持“右键单击”移动。 当您使用“鼠标右键”将源文件/目录拖动到目标位置时,会出现一个上下文菜单。 您可以select相应的菜单选项进行复制/移动/移动重命名等。此选项也将保留历史logging。

注意:在Tortoise SVN中有一个名为“修复移动”的好方法 – 通过使用此function,您可以在移动时重新命名文件/目录。 (有关更多详细信息,请参阅文档 )

您可以使用svn copy命令。 它保持你的历史。 显示日志(乌龟示例)时,您只需取消select“复制/重命名停止”选项。

仔细看看Subversion-Book svn copy

使用回购浏览器拖放它,并重新绑定您的本地文件夹到您的SVN服务器。

如果使用svn move命令将项目3移动到项目文件夹中,将为Project 3文件夹保留历史logging,但有趣的是,Projects文件夹不会显示在Project 3移入Projects之前创build的Project 3的历史logging。

我觉得这个让人困惑,我以为一个文件夹会在层次结构的下面显示所有的历史logging,但是看起来情况并非如此(只是自己testing了一下)

在Subversion中移动目录不会破坏历史logging,AFAIK。

为了做到这一点,你将不得不使用svn的特定的移动/重命名function(如果你使用这个例子,请检查TortoiseSVN帮助)。 如果你自己移动文件,然后提交更改,我不确定历史logging将被保留。

据我所知,只有Bazaar允许在目录上保留历史logging,特别是在谈论移动目录时。 SVN允许您在移动文件时保留历史logging,但不保存目录。