Mercurial 如何将工作目录复制到新提交

Mercurial 如何将工作目录复制到新提交,mercurial,Mercurial,我有以下提交结构: a->b->c 现在c是一个实验,它与b有很大的不同(到了b的任何变化都会导致c中的冲突)。我想保留c,但想停止维护链。因为b和c之间有太多的冲突,简单的重定基址将是一系列的工作 所以我想 a->b \->c' 其中c'只是c中工作区的副本。在git中,我会使用git reset--soft a,然后为我的c'做一个新的提交,在mercurial中是否有类似的东西可以做呢?所以我将发布我最后做的事情,但希望我能得到一个更好的答案 在上进行“不做任

我有以下提交结构:

a->b->c
现在c是一个实验,它与b有很大的不同(到了b的任何变化都会导致c中的冲突)。我想保留c,但想停止维护链。因为b和c之间有太多的冲突,简单的重定基址将是一系列的工作

所以我想

a->b
 \->c'

其中
c'
只是
c
中工作区的副本。在git中,我会使用
git reset--soft a
,然后为我的
c'
做一个新的提交,在mercurial中是否有类似的东西可以做呢?

所以我将发布我最后做的事情,但希望我能得到一个更好的答案

  • 在上进行“不做任何事情”提交(在我的例子中,我添加了一行)。我们需要假代码,因为从
    b
    重新设置到
    a
    会停止说
    没有要重新设置的内容
  • hg rebase-sb-df--keep
    克隆整个分支:
  • hg histedit
    ,折叠c'并放下f
  • hg prune c

  • 听起来您想使用
    revert--all

    伪命令(字母
    a
    c
    表示提交的修订):

  • update-ra
  • revert--all-rc
  • commit-m“新c”
  • strip-r-c

  • 可以找到使用revert all using thg GUI的指南

    这就是我要做的。除了最后一个条带是可选的和/或您可能想等到以后再做,就像备份一样。你也可以解开一条带子,但那有点难。
    a->b->c
    \->f
    
    a->b->c
    \->f->b'->c'
    
    a->b->c
    \->c''
    
    a->b
    \->c''