这里我使用 VisualSVN 和 TortoiseSVN。
我已经重命名了我的文件。我注意到它显示“添加”和“删除”,这对我来说意味着历史记录可能会被删除?
在Subversion中,无损重命名文件的最佳方法是什么?
这里我使用 VisualSVN 和 TortoiseSVN。
我已经重命名了我的文件。我注意到它显示“添加”和“删除”,这对我来说意味着历史记录可能会被删除?
在Subversion中,无损重命名文件的最佳方法是什么?
历史记录不会被删除,但您将失去历史记录的追踪,因为它看起来像是两个不相关的文件。
如果您想对文件或文件夹进行简单的原地重命名,请使用上下文菜单→重命名... 输入项目的新名称,然后完成操作。
修复文件重命名
有时候,您的IDE会在重构练习的一部分中为您重命名文件,当然它不会告诉Subversion。 如果您尝试提交更改,Subversion会将旧文件名视为丢失,将新文件名视为未版本化的文件。 您可以检查新文件名以将其添加进来,但这样将丢失历史跟踪,因为Subversion不知道这些文件相关。
更好的方法是通知Subversion这个更改实际上是一个重命名,您可以在提交和检查修改对话框中执行此操作。只需选择旧名称(缺失)和新名称(未版本化),然后使用上下文菜单→修复移动将两个文件配对为重命名即可。
还有许多其他情况需要处理。
更新
当Subversion不知道它是一个重命名时,例如:
更新 2
当我说历史记录丢失时,请理解之前的信息仍然存在,但它不会出现在当前文件名的日志中,您必须手动跟踪它(这不是一件愉快的事情)。
右键单击文件 > TortoiseSVN > 重命名。
通过从TortoiseSVN上下文菜单进行重命名操作并不会删除历史记录。如果您想查看重命名之前的更改,请确保在查看变更日志时不使用--stop-on-copy标志:
svn log -v -r 0:N --limit 100 [--stop-on-copy] PATH
or
svn log -v -r M:N [--stop-on-copy] PATH
svn move
命令来正确地移动文件。