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



在保留历史记录的同时重命名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 的方法:

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

  2. 在打开的存储库浏览器窗口中,右键单击要重命名的文件,然后选择"复制到...">

  3. 将出现一个对话框,要求您输入新文件名(文件以其完整路径显示(,不要更改路径,只需更改文件名并单击"确定"。

  4. 仍在存储库浏览器窗口中,右键单击旧文件并选择"删除">

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

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

Subversion 中的重命名是作为包含历史记录(创建新文件(和删除(删除原始文件(的副本实现的。

如果您运行svn status,您应该看到newfilename的状态为 A +,这表明已添加newfilename,但历史记录随之而来。

如果您看到这一点,那么您已经做对了,您可以提交更改。我建议在目录级别提交,不要提交单个文件 - 这样,您的重命名操作将在单个修订中捕获。

如果您执行此操作,那么您可以轻松地重命名SVN文件,保留其历史记录。

svn move oldfilename newfilename
svn status
D      oldfilename
A +    newfilename

如果您看到此消息,则会保留文件更改历史记录。

最新更新