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

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

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

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

我该怎么做才能摆脱这个可见的圈子?

有帮助吗?

解决方案

这可能会或可能没有帮助,但有时一个“清理命令”将修复怪异的元数据的问题。如果检查出一个干净的工作拷贝,不干净的副本有同样的问题?如果是,则以前的答案听起来像在正确方向迈出的一步

其他提示

~/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 resolve 命令以外的其他方式:

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

这是什么工作对我来说,放弃所有本地更改,并使用从服务器库中的文件去:

svn update --accept theirs-full

svn resolve --accept theirs-full <pathname>

该消息将出现:W155027:树冲突只能被解析为“工作”

<强>直观下一步但是这实际上切割捕获-22

svn resolve  --accept=working <pathname>

现在恢复所有的“工作”的变化递归。这解开了所有本地更改。

svn revert -R .

回到正常,没有任何错误:

svn update

您可能没有,当你做了合并,或有什么地方合并前的冲突您的文件夹进行更新。要解决,你就必须要你的躯干(目标文件夹)恢复到先前的版本。然后运行该文件夹清理。然后,运行在分支文件夹(源文件夹)清理。然后再次更新这两个文件夹。如果你要在红线任何工作流,那么你需要先恢复这些文件,然后让他们到您希望他们的状态,然后更新的文件夹(是的,再次)。最后,再次执行合并。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top