我是svn的新手,需要从主干到我们正在工作的分支进行大量合并。 这是我合并的svn命令序列
svn up
svn mergeinfo --show-revs eligible branch trunk (branch and trunk are actually svn urls)
我从分支机构和最新的主干版本获得符合条件的修订版本的最低版本,然后进行svn合并。
svn merge -r lowest_eligible:latest_trunk trunk_url .
在合并期间,存在一些冲突。但是,它们与我们在分支机构中所做的任何更改无关,所以我有点困惑为什么它们是冲突。有任何想法吗?无论如何,我总是选择,他们全力解决它
最后,我需要在提交
之前执行svn resolvesvn resolve --accept working -R .
我有两个问题。 这是执行从主干到分支的合并的最佳命令序列吗?
合并往往需要一段时间,所以我想让它合并,让svn自动解决冲突到他们的全部。有没有办法做到这一点?
答案 0 :(得分:3)
svn mergeinfo --show-revs eligible trunk
(第一个参数是SOURCE of合并,第二 - TARGET /默认“。”/,即你的WC)作为最终结果,您的定期同步合并过程将是分支WC内的单个命令
svn merge <URL-OF-TRUNK> --accept "theirs-conflict"
答案 1 :(得分:2)
通常,合并应该更简单 - 特别是如果您只是从主干到分支合并。在这种情况下,请确保
A)您的分支工作副本中没有未提交的更改,并且 B)你有一个当前版本的分支(你已经通过'svn up'来做了)
如果您准备合并,只需执行
即可svn merge ^/trunk
在您的分支工作副本中。
至于冲突: 有时svn会破坏merge diff并报告没有的情况下的冲突。一个好的三向合并工具,如kdiff3可以帮助奇迹。除此之外,我建议不要使用自动冲突解决方案,因为大多数冲突不会因为避免解决而变得更容易解决。使用上述过程,您至少应该能够避免所有不必要的冲突。