2011-01-21 71 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