2011-01-21 91 views
13

我的IDE不知道我使用Subversion,並且任何時候我重命名一個類(Java)它都會重命名文件而不通知版本控制系統。當然,我會保留文件的歷史記錄。我知道在TortoiseSVN中有一個名爲「修復移動」的選項可以修復移動,但這不是一種選擇,因爲我在Ubuntu上。有沒有辦法修復命令行的移動?SVN「修復移動」從命令行

+2

我在TortoiseSVN的源代碼看,回手動移動文件,然後選擇「SVN移動」寄回到目的地。當然,我可以通過命令行來做到這一點,我只是問是否有更簡單的方法。 – 2011-01-21 21:10:58

+1

你可能想提一下你的IDE是什麼 - 有很多IDE特定的工具。 – shaunmartin 2011-01-21 21:17:56

+0

@shaunmartin,他在這裏使用的IDE真的很重要嗎? – 2011-01-21 21:27:05

回答

12

如果你還記得文件的舊名稱/位置:

mv new-filename old-filename 
svn mv old-filename new-filename 

你,當然,需要安裝Subversion命令行客戶端,你可能有。如果沒有,sudo aptitude install subversion subversion-client應該做的伎倆。

根據您的評論,不,我不知道有比這更簡單的方法。如果你不確定你的舊文件名是什麼,svn stat可能會給你一個提示。

3

有沒有辦法修復命令行中的移動?

不,這是SVN issue 1802。它自2003年以來一直開放,所以不要屏住呼吸。

5

添加到您的.bashrc

svn-repair() { mv -n -- "$2" "$1" && svn mv -- "$1" "$2"; } 

,那麼你可以鍵入

svn-repair old-filename new-filename