Svn 使用历史记录移动目录

Svn 使用历史记录移动目录,svn,Svn,我的SVN结构如下: /Projects /Project1 /Project2 /someFolder /Project3 /Project4 我想将所有项目移动到/projects文件夹中,这意味着我想将项目3和项目4从/someFolder移动到/projects文件夹中 警告:我想保留完整的历史记录。我假设每个客户端都必须再次从新位置签出内容,这很好,但我仍然想知道最简单的方法是在不完全破坏历史的情况下移动目录吗 Subversion 1.5,如果需要的

我的SVN结构如下:

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

警告:我想保留完整的历史记录。我假设每个客户端都必须再次从新位置签出内容,这很好,但我仍然想知道最简单的方法是在不完全破坏历史的情况下移动目录吗


Subversion 1.5,如果需要的话。

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

您可以使用svn copy命令。它保存着你的历史。您只需取消选择复制/重命名时停止选项,同时显示Tortoise的日志示例


仔细看看Subversion的书

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

svn move SRC DST svn移动将保留您的历史记录

svn help rename

在subversion中移动/重命名会保持历史记录的完整性。

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

使用repo浏览器将其拖放,然后将本地文件夹重新绑定到SVN服务器。

如果使用SVN move命令将项目3移动到项目文件夹中,则会保留项目3文件夹的历史记录,但有趣的是,项目文件夹不会显示在项目3移动到服务器之前创建的项目3的历史记录项目


我发现这让人困惑,我以为文件夹会在层次结构中显示其自身下方的所有历史,但似乎不是这样。我自己测试过这一点。

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


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

SVN和Bazaar曲目目录。Mercurial、Git和CVS则不然。如果直接在回购协议上进行操作并在之后更新工作副本,速度也会快得多,但在工作副本上进行操作的速度会慢得多。不知道为什么这个答案没有获得更多的投票。这比在命令行或repo浏览器中修改小动作要容易得多。我个人使用的是Total Commander,在那里我错过了右键单击移动。在repo浏览器中重命名就可以了!
svn help rename