我们将VisualStudio与SVN和VisualSVN一起使用。
我通过移动(剪切和粘贴/拖放)并重命名大量文件重新构建了解决方案。
从未听过VisualSVN的投诉,现在是时候让它拒绝这样做了:
Commit failed (details follow):
Error: Cannot commit 'C:\Sources\xxx' 'xx\Model\Model.cs' because it was moved to
'xxx\NewModel.cs' which is not part of the commit; both sides of the move must be committed together
这是正确的,在给定的位置上文件不再存在,坦率地说我不在乎。
我需要SVN来存储解决方案,就像现在一样。没关系,我将无法跟踪已移动和/或复制文件的更改历史记录。
有没有办法强制提交?
答案 0 :(得分:1)
您似乎得到了错误,因为您只提交了移动操作的一部分。 Subversion中的移动包括svn copy
(到新项目位置),后跟svn delete
(原始项目),因此移动的两侧必须在一个修订中一起提交。
我建议按照以下步骤操作:
Visual Studio | VisualSVN |提交... 即可。 确保您执行的移动的两侧都列在"所做的更改"列表视图并尝试提交。你还得到同样的错误吗?
如果第一步失败,请转到 Visual Studio | VisualSVN | Windows |待更改。右键单击解决方案/工作副本的根节点,然后选择提交... 。仍然得到错误?
转到 Visual Studio | VisualSVN |设置工作副本根... 并确保工作副本根指向解决方案的WC的根目录。在此步骤后尝试提交。
答案 1 :(得分:1)
过去一周我遇到了这个问题,同时重构了一些代码并重命名了大量文件。我能够按如下方式解决问题:
TL; DR - 如果SVN认为某个文件是您项目的一部分,但是您的硬盘中缺少该文件,则会出现此错误。只需还原文件即可将其恢复到驱动器上。要清理它,请将文件重新添加到项目中,然后在VS中将其删除以使所有内容保持同步。
答案 2 :(得分:-1)
请先点击刷新按钮,在提交包中刷新后,将包含删除和重命名SVN所需的规则的Visual Studio