当我在汞回购两个分支,如何合并只有一个文件与另一个分支,而不必从变更的所有其他文件合并?
是否有可能进行合并,而不是整体变更的某些文件,?
当我在汞回购两个分支,如何合并只有一个文件与另一个分支,而不必从变更的所有其他文件合并?
是否有可能进行合并,而不是整体变更的某些文件,?
警告:这样的“虚拟合并”,如由@Martin_Geisler建议,才能真正惹你了,如果以后你想要做的两个分支的真正融合。 伪合并将被记录下来,并说你融入你做的假人合并到分支 - 你不会看到的变化。 或者,如果合并到另一个分支,在该分支其它的变化将被撤消。
如果你想要的是从一个分支拷贝整个文件到另一个,你可以简单地做:
hg update -r to-branch
hg revert -r from-branch file
hg ci -m 'copied single file from from-branch to to-branch
如果你想选择一个文件的不同部分,然后"hg record"
是有益的。
我只是做这在我的主目录.hgignore。
如果两个分支已经修改了,你要保持一个文件,一个肮脏的伎俩是使用汞合并创建的两个分支的合并,可能/可能对另一个分支,请检查,然后再复制一个文件合并和以分支之间:
hg update -r to-branch
branch merge-branch
hg merge -r from-branch
hg ci -m 'temp merge to be discarded"
hg update -r to-branch
hg revert -r merge-branch single-file
hg ci -m 'merged single-file from from-branch to to-branch"
hg strip merge-branch
值得一提的是:“复制分支之间的单个文件”的方式(或修订,或修改合并,或......)是“汞复归”。 即
hg update -r Where-you-want-to-copy-to
hg revert -r Where-you-want-to-copy-from file-you-want-to-copy
...
hg ci
出于某种原因,我和我的一些同事,觉得这很混乱。 “恢复” ==“复制” ......有道理的某些使用模式,但不是全部。
不。 水银工作的变更的基础上。
但是你可以做一个“ 虚拟合并 ”在这里你忽略的一个分支引入的变更。 在您承诺,那么你可以恢复选定的文件到任何你想要的状态:
% HGMERGE=internal:local hg merge # keep my files
% hg revert --rev other-branch a.txt # update a.txt to other branch
% hg commit -m 'Dummy merge to pick a.txt from other-branch.'
也许这将帮助你一点。
我只想用一个外部工具,如vimdiff
到diff的,我要合并,然后将它们合并这两个文件。 这样做的好处是,你可以在文件的各个部分做选择性的编辑。 例如:
hg update -r branch-merging-to
hg extdiff -p vimdiff -r branch-merging-from file-I-am-merging
要做到这一点,你需要确保您的.hgrc,这只是意味着增加这些线路的外部工具:
[extensions]
hgext.extdiff =