举一个简单的例子:我在默认分支上工作,在本地提交了一些变更集,并且我从主存储库中提取了一些变更集。我已经在隔离的本地存储库中工作了几天,因此在将我的结果推送回主服务器之前,需要进行一些合并更改。在Mercurial中合并方向问题吗?
default ---o-o-o-o-o-o-o-o-o-o-o (pulled stuff)
\
o----o------------o (my stuff)
我现在可以做两件事。
选项#1:
hg pull
hg merge
结果#1:
default ---o-o-o-o-o-o-o-o-o-o-o
\ \
o----o------------o-O
选项#2:
hg pull
hg update
hg merge
结果#2:
default ---o-o-o-o-o-o-o-o-o-o-o-O
\ /
o----o------------o
这两个结果看起来同构于我,但在实践中,似乎选项#2导致较小的变更集(因为它只对主线应用我的少量更改,而不是将所有主线更改应用于我的几个)。
我的问题是:这有什么关系吗?我应该关心我合并的方向吗?如果我这样做,我可以节省空间吗? (合并之后做hg log --patch --rev tip
建议如此。)
如果你正在使用[汞的Git(http://hg-git.github.com/)这一点尤为重要,因为跟踪虚拟的Git分支的位置使用书签。如果你以错误的方式合并,Git分支书签不会移动,并且你无法推送任何东西。 – 2012-04-23 16:55:08