【问题标题】:Can't resolve tree conflict with SVN无法解决与 SVN 的树冲突
【发布时间】:2010-01-07 14:54:40
【问题描述】:

我最近遇到了一个很奇怪的颠覆行为。

我刚刚将一个分支的本地副本与一个远程分支合并。一切都很顺利,但我有 1 个树冲突(本地删除,远程更新)。

好吧,我想,适当地修改了工作副本并运行“svn resolve --accept=working -R.”。

Subversion 告诉它已经解决了我的问题并且“svn st”不再显示任何问题。因此,我尝试提交,但 svn 告诉我其中一个内部文件夹(在我的冲突文件夹中)已过时并建议 svn up,但它使文件夹再次发生冲突!

我该怎么做才能摆脱这个恶性循环?

【问题讨论】:

  • 可能想要查看答案并接受不同的答案

标签: svn tree-conflict


【解决方案1】:
~/sandbox/jabira > svn resolve  --accept=theirs-full testClient/
svn: warning: Tree conflicts can only be resolved to 'working' state; 'testClient' not resolved

~/sandbox/jabira  > svn resolve  --accept=working testClient/
Resolved conflicted state of 'testClient'

希望有帮助

【讨论】:

  • 感谢它的帮助!我想很容易误解来自 svn 的警告信息,即 svn 搞砸了。实际上这是一个指令,在这种情况下该怎么做。
【解决方案2】:

这可能有帮助,也可能没有帮助,但有时“svn cleanup”会解决奇怪的元数据问题。如果您检查干净的工作副本,干净的副本是否有同样的问题?如果是这样,那么前面的答案听起来像是朝着正确方向迈出的一步

【讨论】:

  • 啊,谢谢,我忘了清理...需要试试这个。
【解决方案3】:

您可以使用 svn resolve 命令以外的其他方式:

  1. 创建冲突文件的补丁。 (或使用 svn export 备份您的冲突文件夹版本...)
  2. 更新您的存储库 (svn update)
  3. 应用之前完成的补丁(或用备份替换冲突的文件/文件夹)
  4. 提交更改 (svn commit)

【讨论】:

  • 这实际上是我最终得到的:(
  • 当svn不能正常工作时,说明.svn文件夹乱了。 svn cleanup 命令可以提供帮助,但它对我永远不起作用,所以我每次都使用这种方法......(悲伤)。如果它有效,请不要忘记将此帖子标记为“已接受答案”(否则此问题仍将保持未回答)
【解决方案4】:

这就是我放弃所有本地更改并使用服务器存储库中的文件的原因:

svn update --accept theirs-full

svn resolve --accept theirs-full <pathname>

出现此消息:W155027: Tree conflict can only besolved to 'working'

不直观的下一步,但这实际上切断了第 22 条规则

svn resolve  --accept=working <pathname>

现在递归还原所有“工作”更改。这取消了我所有的本地更改。

svn revert -R .

恢复正常,没有错误:

svn update

【讨论】:

    【解决方案5】:

    您可能在进行合并时没有更新您的文件夹,或者在合并之前某处发生了冲突。要修复,您必须将主干(目标文件夹)恢复到以前的版本。然后对该文件夹运行清理。然后在分支文件夹(源文件夹)上运行清理。然后再次更新这两个文件夹。如果您在任何工作流程中都出现红色线条,那么您需要先恢复这些文件,然后将它们恢复到您想要的状态。然后更新文件夹(是的,再一次)。最后再次执行合并。

    【讨论】:

      猜你喜欢
      • 2022-10-14
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多