Jas*_*n S 74 merge mercurial branch
...所以我已经习惯了Mercurial(add,)的简单内容commit,diff并发现了.hgignore文件(是的!)并且已经掌握了在分支(branch,update -C)之间创建和切换的问题.
我有两个主要问题:
如果我在分支"Branch1"并且我想从分支"Branch2"中提取一些但不是所有的更改,我该怎么做?特别是如果所有更改都在一个子目录中.(我想我可以克隆整个存储库,然后使用像Beyond Compare这样的目录合并工具来选择我的编辑.看起来应该有一种方法可以将一个文件或一个目录中的更改隔离开来.)
在分支之间切换update -C似乎很容易,我想知道为什么我会打扰使用clone.我只能想到几个原因(见下文) - 还有其他一些我缺席的原因吗?
一个.如果我需要同时对两个版本/分支进行操作(例如,执行性能度量差异)
湾 用于备份(clone到物理上不同位置的网络驱动器的存储库)
C.像我上面提到的那样进行选择合并.
Dra*_*mon 50
我使用克隆:
以前的使用对我来说非常罕见 - 主要是当我尝试一个我可能想完全放弃的想法时.如果我想合并,我将要合并所有更改.这种分支主要用于跟踪不同开发者的分支,因此它们不会相互干扰.只是澄清最后一点:
对于功能分支或更长寿的分支,我使用命名分支,这些分支在存储库之间更舒适地共享而不进行合并.当您想要有选择地合并时,它"感觉"更好.
基本上我这样看待它:
这是我的看法,但实际上这是政策问题.
Ste*_*osh 29
对于问题1,您需要更清楚地了解"变化"的含义.你指的是以下哪些:
如果你的意思是第1项,你应该研究移植扩展,特别是樱桃挑选几个变更集的想法.
如果您的意思是第2项,您将执行以下操作:
hg revert -r <branch you want to merge> --include <files to update>将这些文件的内容更改为它们在另一个分支上的方式.hg commit将这些更改作为新的更改集提交到分支.至于问题2,我从不使用存储库克隆来自己分支,所以我不知道.我使用命名分支或匿名分支(有时使用书签).