提交SVN的解决方案

时间:2014-07-31 09:24:30

标签: visual-studio-2010 svn visualsvn

我们将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来存储解决方案,就像现在一样。没关系,我将无法跟踪已移动和/或复制文件的更改历史记录。

有没有办法强制提交?

3 个答案:

答案 0 :(得分:1)

您似乎得到了错误,因为您只提交了移动操作的一部分。 Subversion中的移动包括svn copy(到新项目位置),后跟svn delete(原始项目),因此移动的两侧必须在一个修订中一起提交。

我建议按照以下步骤操作:

  1. Visual Studio | VisualSVN |提交... 即可。 确保您执行的移动的两侧都列在"所做的更改"列表视图并尝试提交。你还得到同样的错误吗?

  2. 如果第一步失败,请转到 Visual Studio | VisualSVN | Windows |待更改。右键单击解决方案/工作副本的根节点,然后选择提交... 。仍然得到错误?

  3. 转到 Visual Studio | VisualSVN |设置工作副本根... 并确保工作副本根指向解决方案的WC的根目录。在此步骤后尝试提交。

答案 1 :(得分:1)

过去一周我遇到了这个问题,同时重构了一些代码并重命名了大量文件。我能够按如下方式解决问题:

  1. 我一次提交了一个项目文件夹(在文件夹级别)以隔离问题。就我而言,除了两个文件夹之外的所有文件夹都没有错误。
  2. 在有问题的文件夹中,我单独提交了文件。我现在每个文件旁边都有一个绿点,但这两个文件夹仍然是黄色的。
  3. 我试图再次提交该文件夹。它给了我同样的错误,但现在它只是在对话框中显示了它遇到问题的文件。
  4. 给我提问的文件是已删除但不在我的驱动器上的文件。我右键单击每个文件并将其还原。这会将文件放回我的驱动器上,即使它不是我在VS中的项目的一部分。
  5. 最后,我将文件添加回VS中的项目,然后立即将其删除并提交项目。现在一切似乎都已修好了。
  6. TL; DR - 如果SVN认为某个文件是您项目的一部分,但是您的硬盘中缺少该文件,则会出现此错误。只需还原文件即可将其恢复到驱动器上。要清理它,请将文件重新添加到项目中,然后在VS中将其删除以使所有内容保持同步。

答案 2 :(得分:-1)

请先点击刷新按钮,在提交包中刷新后,将包含删除和重命名SVN所需的规则的Visual Studio