2008-09-20 129 views
60

移动目录我有一个SVN结构是这样的:与历史

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

我想所有的项目移入/ Projects文件夹,这意味着我要从/ someFolder项目3和4进入/ projects文件夹。

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

Subversion 1.5如果有问题。

回答

52
svn help rename 

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

2

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

4

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

采取在Subversion的图书svn copy

-3

细看据我所知,只有芭莎允许谈论移动目录时要记住历史上的目录,espacially。 SVN允许您在移动文件时保留历史记录,但不保存目录。

+7

SVN和Bazaar跟踪目录。 Mercurial,Git和CVS都没有。 – Joshua 2008-09-20 16:07:16

38
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此举将让你的历史。

+0

如果直接在回购和更新工作副本之后做的更快,它在工作副本上的移动速度很慢 – Sam 2015-06-23 13:19:55

2

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

3

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

4

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

我觉得迷惑,我想到了一个文件夹,会出现如下图所示本身所有的历史在层次结构,但它看起来这是不是(我只是测试这一点)

7

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

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

+1

想知道为什么这个答案没有更多upvotes。这比修改小命令的命令行或回购浏览器容易得多。 – LWChris 2016-08-22 08:49:04