2008-09-20 98 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