在保留历史记录的同时在SVN中重命名文件时遇到一些麻烦。
使用过这个帖子,但我很确定我刚刚创建了一个新文件,并删除了旧文件...(How to rename a file using svn?)
在评论之后,我确实用我想要的新文件名创建了一个新文件。
touch newfilename
svn rm newfilename --force
svn mv oldfilename newfilename
哪位给了我:
A newfilename
D oldfilename
使用svnX 0.9.13
答案 0 :(得分:4)
如果执行此操作,则可以轻松地重命名SVN文件,保留其历史记录。
svn move oldfilename newfilename
svn status
D oldfilename
A + newfilename
如果您看到此内容,则会保留文件更改历史记录。
答案 1 :(得分:3)
Subversion中的重命名实现为带有历史记录的副本(用于创建新文件)和删除(删除原始文件)。
如果您运行svn status
,则应将newfilename
的状态显示为A +
,表示已添加newfilename
,但是为了这次旅行而来的历史。
如果您看到了这一点,那么您已经做好了,并且您可以提交更改。我建议在目录级别提交,不要提交单个文件 - 这样,您的重命名操作将在单个修订版本中捕获。
答案 2 :(得分:1)
由于您的问题中带有tortoisesvn
标记,因此这是使用TortoiseSVN 1.9.7的方法:
在工作副本文件夹中,右键单击要重命名的文件,然后选择“ TortoiseSVN>存储浏览器”
,右键单击要重命名的文件,然后选择“复制到...”
出现一个对话框,询问您新的文件名(文件显示为完整路径),不要更改路径,只需更改文件名,然后单击“确定”即可。
仍在“回购浏览器”窗口中,右键单击旧文件,然后选择“删除”
完成后,文件被重命名并保留了所有历史记录。