SVN删除已重命名/修复的文件

3

在使用VisualSVN和VS2012的情况下。

  • 右键重命名文件(使用VS解决方案资源管理器)
  • 进行了几个小时的修改
  • 右键提交项目
  • 右键并修复文件的前后版本
  • '错误'框显示“找不到文件”
  • 是的,没错,我的文件的新版本消失了。
  • (删去了粗话)

我知道SVN不喜欢无法控制重命名,但这里出了什么问题?

enter image description here


1
右键单击并修复文件的前/后版本 - 您能提供有关此步骤的更多信息吗? - Ivan Jovović
@IvanJovovic,我粘贴了一张图片。 - Benjol
我已经成功重现了所描述的问题,但没有更多的信息。确切的错误消息是:“系统找不到指定的文件”。 - Ivan Jovović
如果你正在使用VisualStudio,那么你应该使用VisualStudio集成而不是TortoiseSVN吧?我从未将VisualSVN作为VisualStudio插件使用过,但它应该可以直接在VisualStudio中工作。我曾经使用AnkhSVN作为VisualStudio的集成插件,在VisualStudio内部重命名文件时没有遇到问题。 - David W.
1个回答

1
  1. 看起来是TortoiseSVN的一个bug。我刚刚向TortoiseSVN邮件列表报告了此问题。该漏洞已被修复,感谢Stefan Kung

  2. 对于正确重命名或移动的文件,您无需在其上运行“修复移动”命令。VisualSVN跟踪在Visual Studio中执行的所有文件操作,并将其反映到Subversion中。移动、添加、重命名等——这些都由VisualSVN插件覆盖。

以下是与您的问题相关联的TortoiseSVN手册中的一句话:

有时,您友好的IDE会在重构练习中为您重命名文件,当然它不会告诉Subversion。

VisualSVN实际上会告诉Subversion已经重命名了文件,因此在使用VisualSVN时不需要运行“修复移动”操作。
只需尝试使用VisualSVN在某个测试Visual Studio解决方案中重命名文件,并检查“svn status”以查看发生了什么。例如,您将看到以下结果:
D       WindowsFormsApplication3\Program.cs
        > moved to WindowsFormsApplication3\SUPERPROGRAM.cs
A  +    WindowsFormsApplication3\SUPERPROGRAM.cs
        > moved from WindowsFormsApplication3\Program.cs

如您所见,文件已被正确重命名。

在您提交更改后,这里是重命名的存储库日志条目:

r3 | Pavel.Lyalyakin | 2015-04-22 13:46:38 +0300 (Wed, 22 Apr 2015) | 1 line
Changed paths:
   D /trunk/WindowsFormsApplication3/Program.cs
   A /trunk/WindowsFormsApplication3/SUPERPROGRAM.cs (from /trunk/WindowsFormsApplication3/Program.cs:2)

正如您所见,有一条注释指出文件SUPERPROGRAM.cs在第2次修订中从Program.cs重命名。


太好了,知道我不是疯了 :) 顺便说一下,我认为(+)符号很疯狂,因为它看起来就像Add的同义词。他们不能把“重命名”放在那里吗? - Benjol
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - bahrep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接