我只是设法让自己非常彻底地尝试遵循上面 user619330 的建议。情况是:(1):我在我的初始分支branch1上工作时添加了一些文件;(2) 我创建了一个新的分支,branch2 用于进一步开发,将它从主干分支出来,然后合并我从 branch1 的更改 (3) 一位同事将我的 mods 从 branch1 复制到他自己的分支,添加了更多的 mods,然后合并回主干;(4) 我现在想将来自主干的最新更改合并到我当前的工作分支 branch2 中。这是 svn 1.6.17。
合并与新文件存在树冲突,我想要来自它们不同的主干的新版本,所以从 branch2 的干净副本中,我对冲突文件进行了 svn 删除,提交了这些 branch2 更改(从而创建了一个临时没有相关文件的 branch2 版本),然后我从主干进行了合并。我这样做是因为我希望历史记录与主干版本相匹配,这样以后在尝试合并回主干时就不会遇到更多问题。合并进行得很好,我得到了文件的主干版本,svn st 显示一切正常,然后我在尝试提交更改时遇到了更多的树冲突,在我之前所做的删除和合并中的添加之间。是否有一个 svn 解决了有利于我的工作副本(现在有文件的主干版本)的冲突,并让它提交。
嗯,不。更新 branch2 的另一个副本导致文件的旧版本(主干合并前)。所以现在我有两个不同的 branch2 工作副本,据说更新到相同的版本,有两个不同版本的文件,并且都坚持认为它们是完全最新的!签出 branch2 的干净副本会导致文件的旧(主干前)版本。我手动将这些更新到主干版本并提交更改,回到我的第一个工作副本(我最初提交主干更改的地方),尝试更新它,现在在有问题的文件上出现校验和错误。把有问题的目录吹走,通过更新获得一个新版本,最后我有了一个好的分支 2 版本,主干发生了变化。我希望。警告开发商。