TortoiseSVN 报冲突,但是找不到冲突

Posted

技术标签:

【中文标题】TortoiseSVN 报冲突,但是找不到冲突【英文标题】:TortoiseSVN reports conflict, but no conflict can be found 【发布时间】:2012-05-11 23:45:59 【问题描述】:

我的整个存储库都有一个工作副本,其中包含多个 Python 项目。当我在 Windows 文件资源管理器中选择右键单击 --> SVN 更新时,我收到一条列出特定项目文件夹的错误消息:

Command: Update
Updating: path\to\working\copy
Skipped obstructing working copy: path\to\working\copy\project
Completed: At revision: 176
Warning!: One or more files are in a conflicted state.

当我进入该项目并右键单击 --> SVN Update 时,它​​会成功更新。也没有可用的冲突编辑器,当我右键单击时 --> TortoiseSVN --> 解决了没有可用的文件。

什么可能导致冲突?只要这种情况不断发生,就不可能在我的工作副本中更新这个项目。

【问题讨论】:

【参考方案1】:

尝试右键单击/TortoiseSVN/清理。

这通常对我有用。

【讨论】:

我会在工作副本文件夹还是项目文件夹上这样做 你签出到的文件夹(你提交的文件夹) 我刚刚尝试清理两者,但均未成功,但感谢您的帮助。我总是忘记清理。 它仍然显示“文件列表为空” 这可能有助于***.com/questions/4278624/…【参考方案2】:
Skipped obstructing working copy

这意味着存在一个工作副本文件夹:您的更新想要添加一个名为“项目”的文件夹,但您的工作副本中已经有一个版本化文件夹“项目”。 也许您从另一个工作副本中移动了该文件夹?或者该文件夹是它自己的工作副本(如果它有隐藏的 .svn 文件夹,那么它就是一个独立的、单独的工作副本)。

解决: 将文件夹移出工作副本(或将其删除)。然后再次运行更新。更新将再次获取同名文件夹。但它可能与您的不同 - 这就是为什么我建议您移动文件夹并仅在检查更新后的文件夹与原始文件夹相同后将其删除。

【讨论】:

谢谢@Stefan - 成功了。我仍然不确定这是怎么发生的,因为我移动的文件夹和使用 SVN 更新时添加到工作副本的文件夹完全相同。感谢您的帮助。 感谢您用简单的英文定义它! 我在子文件夹中使用“在此处创建存储库”选项创建了一个工作副本。然后我在父文件夹中“签出”。这使我有两个工作副本。我通过删除子文件夹解决了它。感谢这个简单而有效的解决方案!!!【参考方案3】:

如果您的 svn 版本支持,您也可以在清理菜单中选中“删除未版本控制的文件和文件夹”选项。 这绝对让事情变得更容易,而不是一个一个地寻找那些文件夹(我总是发现它们是非版本控制的副本)。

请注意,在进行此清理之前,您不会在本地忘记提交任何有效的新文件添加...!

【讨论】:

【参考方案4】:

我遇到了同样的问题,但它发生在一个非常大的分支 (c:\svn\root) 的根部。我只在其中一个目录中深入(c:\svn\root\some\dir\deep\down\),因此 Stefan 对问题和解决方案的解释没有意义。

我的解决方法是分别更新c:\svn\root\ 中的每个目录,然后返回并更新c:\svn\root\。这对我有用。不确定问题到底出在哪里。

【讨论】:

【参考方案5】:

我无需移动文件就解决了这个问题,因为我的 obstructedsubfolders 已正确链接到 svn:

    签入具有Skipped obstructing working copy 的文件夹的所有文件 现在您可以安全地删除被阻塞的文件夹(因为我们之前签入了所有内容) 对根文件夹执行更新

现在整个文件夹再次干净,根文件夹上的更新工作。

【讨论】:

【参考方案6】:

在 Windows 10 系统上使用 TortoiseSVN 1.9.5,从分支 (Project/branch/A) 合并回主干 (Project/trunk) 时出现类似的错误消息。我的主干工作目录没有本地修改,但合并抱怨我的工作副本文件夹的根目录有

“跳过阻碍工作副本”

。 问题是,我的工作副本位于不同的分区上,而“Project/trunk”是一个指向另一个分区上文件实际位置的 Junction。

修复方法是对连接指向的分区文件夹执行 TortoiseSVN 合并操作,即工作副本文件实际驻留的位置。

【讨论】:

这是我案例的正确答案。它也适用于在 Windows 上通过“subst”命令替换的驱动器。

以上是关于TortoiseSVN 报冲突,但是找不到冲突的主要内容,如果未能解决你的问题,请参考以下文章

总结记一次log4j包冲突引发es类找不到的问题

曹工杂谈:用好verbose,Jar包冲突不再难

如何正确使用 KDiff3 与 TortoiseSVN 来解决冲突?

自动布局报错(两条连线冲突):Unable to simultaneously satisfy constraints

Tortoise SVN:使用“他们的”解决冲突。这是啥意思?

如何将分支合并回主分支并避免树冲突 - TortoiseSVN