在Mercurial / TortoiseHg中,给出下面的例子,将修订“G”合并到回购A中,而不用D,E和F(假设G不依赖于D,E或F),最简单的方法是什么。 Repo A: A – B – C Repo B (Clone of A) A – B – C – D – E – F – G 补丁是最好的select吗?
在Mercurial中维护发布分支时,最近有几个关于跳过修改的问题。 例如: Mercurial:分支具体变化在虚拟合并之后继续回来 为什么一个分支的Mercurial退出会影响其他分支? 自2.0版本推出以来,我一直在想使用graft来避免这个问题。 给定一个像这样的修订树: A—B—C—D—E—F—G—H—I—J 假设我们需要创build一个跳过邪恶变化E的释放分支。 hg update -r D hg graft "F::J" 给我们: A—B—C—D—E—F—G—H—I—J \ –F'–G'–H'–I'–J' Q1:这里发生了什么? 我可以理解, transplant将从F::J生成补丁,然后将它们应用到D ,但graft据说使用3路合并而不是补丁。 所以…….这是如何工作的? 为什么更好? 可以说,我现在修复E ,并将其合并到我的发布分支。 –E2—————– / \ A—B—C—D—E—F—G—H—I—J—M1 \ \ –F'–G'–H'–I'–J'———M2– M1是直接合并; 没有什么特别的。 M2正在合并具有“相同”(或至less等同)更改的分支。 Q2:这是合并使用D , J'和M1的正常3路合并吗? 问题3:mercurial存储/使用移植操作的额外信息来帮助合并? 最后… 问题4:像这样的stream程有什么潜在的问题?