我最近遇到了一个很奇怪的颠覆行为。
我刚刚将分支的本地副本与远程分支合并。一切都很顺利,但我有 1 个树冲突(本地删除,远程更新)。
好吧,我想,适当地修改了工作副本并运行“svn resolve --accept=working -R。”。
Subversion 告诉它已经解决了我的问题并且“svn st”不再显示任何问题。所以,我尝试提交,但 svn 告诉我其中一个内部文件夹(在我的冲突文件夹内)已过时并建议 svn up,但它使文件夹再次发生冲突!
我该怎么做才能摆脱这个恶性循环?
我最近遇到了一个很奇怪的颠覆行为。
我刚刚将分支的本地副本与远程分支合并。一切都很顺利,但我有 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 cleanup”会修复奇怪的元数据问题。如果您检查干净的工作副本,干净的副本是否有同样的问题?如果是这样,那么上一个答案听起来像是朝着正确方向迈出的一步
您可以使用 svn resolve 命令以外的其他方式:
这就是我放弃所有本地更改并使用服务器存储库中的文件的原因:
svn update --accept theirs-full
svn resolve --accept theirs-full <pathname>
出现此消息:W155027:树冲突只能解决为“工作”
不直观的下一步,但这实际上削减了 catch-22:
svn resolve --accept=working <pathname>
现在递归地恢复所有“工作”更改。这取消了我所有的本地更改。
svn revert -R .
恢复正常,没有错误:
svn update
进行合并时,您可能没有更新文件夹,或者在合并之前某处存在冲突。要修复,您必须将主干(目标文件夹)恢复到以前的版本。然后对该文件夹运行清理。然后在分支文件夹(源文件夹)上运行清理。然后再次更新这两个文件夹。如果您在任何工作流程中都出现红色线条,那么您需要先恢复这些文件,然后将它们恢复到您想要的状态。然后更新文件夹(是的,再一次)。最后再次执行合并。