在保留历史记录的同时重命名SVN中的文件时遇到一些问题。
使用了这个线程,但我很确定我只是制作了一个新文件,并删除了旧文件......(如何使用 svn 重命名文件?
在评论之后,我确实使用我想要的新文件名创建了一个新文件。
touch newfilename
svn rm newfilename --force
svn mv oldfilename newfilename
这给了我:
A newfilename
D oldfilename
使用 svnX 0.9.13
由于您的问题中有tortoisesvn
标签,因此以下是使用 TortoiseSVN 1.9.7 的方法:
-
在您的工作副本文件夹中,右键单击要重命名的文件,然后选择"TortoiseSVN>存储库浏览器">
-
在打开的存储库浏览器窗口中,右键单击要重命名的文件,然后选择"复制到...">
-
将出现一个对话框,要求您输入新文件名(文件以其完整路径显示(,不要更改路径,只需更改文件名并单击"确定"。
-
仍在存储库浏览器窗口中,右键单击旧文件并选择"删除">
完成后,文件被重命名并保留其所有历史记录。
- 返回您的工作副本文件夹,右键单击该文件夹并选择"TortoiseSVN>检查修改",然后单击"检查存储库"按钮,右键单击重命名的文件并选择"更新">
Subversion 中的重命名是作为包含历史记录(创建新文件(和删除(删除原始文件(的副本实现的。
如果您运行svn status
,您应该看到newfilename
的状态为 A +
,这表明已添加newfilename
,但历史记录随之而来。
如果您看到这一点,那么您已经做对了,您可以提交更改。我建议在目录级别提交,不要提交单个文件 - 这样,您的重命名操作将在单个修订中捕获。
如果您执行此操作,那么您可以轻松地重命名SVN文件,保留其历史记录。
svn move oldfilename newfilename
svn status
D oldfilename
A + newfilename
如果您看到此消息,则会保留文件更改历史记录。