重命名文件并将旧文件名替换为Subversion中先前版本的文件

时间:2010-07-22 21:00:48

标签: svn tortoisesvn rename revert

我在Windows中使用TortoiseSVN检出了Subversion分支。我有一个文件,称之为myfile.txt,我要重命名,比如mynewfile.txt。但是,我想保留myfile.txt,然后将其恢复到之前的版本,比如r15。所以,我希望myfile.txt包含r15和mynewfile.txt中的内容,以便从rHEAD获取myfile.txt的内容。我希望我可以用Subversion命令以某种方式做到这一点,以便保留文件的历史记录。这样,当我提交并查看修改时,您可以看到mynewfile.txt只是myfile.txt的重命名,而myfile.txt现在有来自r15的旧内容。这可能吗?我应该只重命名myfile.txt - > mynewfile.txt然后重新制作myfile.txt,手动将r15中的内容复制到其中?

2 个答案:

答案 0 :(得分:4)

svn cp myfile.txt mynewfile.txt
svn co -r15 myfile.txt
svn commit

我相信这会保留你所希望的历史。

编辑:TortoiseSVN,没有意识到!新步骤:

  1. 打开Repo浏览器并右键单击myfile.txt
  2. 选择“复制到...”,然后选择mynewfile.txt作为新名称。
  3. 右键单击签出副本中的myfile.txt ,然后选择“更新到修订版本”并选择15。
  4. 提交。

答案 1 :(得分:1)

您需要旧版本的第二个工作副本(复制目录并仅更新单个文件就足够了)。然后,您需要执行以下步骤:

  • 在HEAD工作副本中从svn上下文菜单中选择rename以重命名文件
  • 转到旧工作副本,然后用鼠标右键将旧文件拖到HEAD工作副本
  • 从显示的菜单中选择svn copy versioned items here
  • commit(确保旧文件的文本状态显示为“replace(+)”,新文件的“添加(+)”)