在svn中重命名文件的更好方法是什么?

时间:2015-07-12 07:53:07

标签: windows svn

我不太确定我是不是很奇怪或者是什么,但似乎我找不到在svn中重命名文件的正确答案。

官方文档假定我(在我编译和维护的所有担心之外)在我做出更改之前使用svn 重命名文件

我错过了什么或什么?可以svn接受我使用文件系统重命名而不强制我恢复旧文件并将我使用的新文件移动到另一个文件夹之后我可以制作(svn mv old_file new_file),之后只有我可以带回来我工作的新文件,然后将其替换回来!

我在Windows上使用SilkSVN版本1.8.13。

2 个答案:

答案 0 :(得分:3)

  

可以svn接受我使用文件系统重命名

没有。操作系统级重命名将在日志中产生损坏的历史记录(两个不相关的文件操作 - "文件添加"和#34;文件已删除"),两个文件之间没有任何关系,这与正确移动|重命名档案

>svn log -q -v intefaces.txt --stop-on-copy
------------------------------------------------------------------------
r5 | Badger | 2015-07-12 20:58:23 +0500 (Вс, 12 июл 2015)
Changed paths:
   A /trunk/API/intefaces.txt (from /trunk/inteface.txt:4)
...

答案 1 :(得分:1)

我不了解SilkSVN,我很确定命令行没有这个,但是TortoiseSVN有一个"修复动作"功能,可用于修复忘记使用SVN重命名文件的情况,并使用操作系统命令(或者,如果必须使用外部工具升级/重命名文件),我可以使用此功能 - 我是看着你,微软)。

在TortoiseSVN中,如果您已重命名文件且SVN尚未知晓,您可以使用"检查修改"看到"失踪"文件和"无版本"文件。使用CTRL-Click突出显示两者,然后上下文菜单包含"修复移动"将文件标记为重命名而不是无版本添加/删除的选项。

注意,即使缺少此功能,您也不需要还原旧文件,只需暂时重命名/移动您正在处理的文件,然后再使用svn move把它放回你想要的地方:SVN "repair move" from the command-line