移动目录与历史

时间:2008-09-20 16:02:16

标签: svn

我有这样的SVN结构:

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

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

警告:我想保留完整的历史。我假设每个客户都需要再次检查新位置的内容,这很好,但我仍然想知道最简单的方法是移动目录而不会完全破坏历史记录?

Subversion 1.5如果重要的话。

9 个答案:

答案 0 :(得分:55)

svn help rename

在subversion中移动/重命名可保持历史记录不变。

答案 1 :(得分:40)

svn move SRC DST
$ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c http://svn.red-bean.com/repos/bar.c

svn move将保留您的历史。

答案 2 :(得分:11)

Tortoise SVN支持'右键'移动。使用“鼠标右键单击”将源文件/目录拖动到目标中时,将出现上下文菜单。您可以选择适当的菜单选项进行复制/移动/移动重命名等。此选项也将保留历史记录。

注意:在Tortoise SVN中有一个名为“修复移动”的好功能 - 通过使用此功能,您可以在移动文件/目录时重命名该文件/目录。 (有关详细信息,请参阅Documentation

答案 3 :(得分:5)

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

我发现这令人困惑,我认为文件夹会在层次结构中显示所有历史记录,但看起来情况并非如此(仅我自己测试过)

答案 4 :(得分:4)

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

仔细查看Subversion-Book svn copy

答案 5 :(得分:3)

使用repo-browser拖放它并将本地文件夹重新绑定到SVN服务器。

答案 6 :(得分:2)

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

答案 7 :(得分:2)

为了做到这一点,你必须使用svn的特定移动/重命名功能(如果你使用它,请查看TortoiseSVN帮助)。如果您自己移动文件然后提交更改,我不确定将保留历史记录。

答案 8 :(得分:-2)

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