如何在保留历史的同时重命名SVN上的文件?

时间:2017-03-16 18:52:10

标签: svn tortoisesvn

在保留历史记录的同时在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

3 个答案:

答案 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的方法:

  1. 在工作副本文件夹中,右键单击要重命名的文件,然后选择“ TortoiseSVN>存储浏览器”

  2. 在打开的“回购浏览器”窗口中
  3. ,右键单击要重命名的文件,然后选择“复制到...”

  4. 出现一个对话框,询问您新的文件名(文件显示为完整路径),不要更改路径,只需更改文件名,然后单击“确定”即可。

  5. 仍在“回购浏览器”窗口中,右键单击旧文件,然后选择“删除”

完成后,文件被重命名并保留了所有历史记录。

  1. 返回您的工作副本文件夹,右键单击该文件夹并选择“ TortoiseSVN>检查修改”,然后单击“检查存储库”按钮,右键单击重命名的文件并选择“更新”