相关疑难解决方法(0)

在Mercurial中使用移植物的后果

最近有几个关于在Mercurial中维护发布分支时跳过更改的问题.例如:

自从它在2.0中引入以来,我一直想知道如何graft避免这个问题.给定这样的修订树:

A---B---C---D---E---F---G---H---I---J
Run Code Online (Sandbox Code Playgroud)

假设我们需要创建一个跳过Evil更改的发布分支E.

hg update -r D
hg graft "F::J"
Run Code Online (Sandbox Code Playgroud)

给我们:

A---B---C---D---E---F---G---H---I---J
             \
              --F'--G'--H'--I'--J'
Run Code Online (Sandbox Code Playgroud)
  • 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--
Run Code Online (Sandbox Code Playgroud)

M1是直接合并; 没什么特别的.M2正在合并具有"相同"(或至少等同)变化的分支.

  • Q2:这个合并只是一个正常的3路合并使用D,J'M1
  • 问题3:mercurial存储/使用有关移植操作的额外信息以帮助它合并吗?

最后......

  • 问题4:像这样的流程存在哪些潜在问题?

version-control mercurial branch dvcs cherry-pick

98
推荐指数
2
解决办法
2万
查看次数

Mercurial cherry采取改变提交

说,我对我的代码做了很多更改,只需要提交一些更改.有没有办法在mercurial中做到这一点?我知道darcs有这样一个功能.

我知道hg transplant可以在分支之间执行此操作,但是我需要这样的东西来提交当前分支中的代码而不是从其他分支添加更改集时.

mercurial change-management

57
推荐指数
6
解决办法
2万
查看次数