在mercurial中拆分更改集的最简单方法

Kur*_*ger 28 mercurial

我很高兴使用git,但最近出于好奇心而根据朋友的观点一直在探索Mercurial,认为它在某些方面更好.

然而,我注意到的第一件事是,Mercurial似乎没有像git那样的索引.我倾向于做更多的改变然后我应该在编辑文件后git add -p用来将补丁分成单独的提交.如果更改在不同的文件中,我可能会使用MQ,但是看起来我需要先撤消更改.

是否可能有Mercurial的扩展,它提供类似索引的功能?

dli*_*itz 41

拆分变更集有两种方法,具体取决于您是否已提交要拆分的更改:

要从工作目录中有选择地提交更改(如果尚未提交更改):

  • 使用hg record.(这类似于使用git commit --patch.)

拆分现有变更集(如果您已提交更改):

  1. 使用hg histedit并选择要编辑的变更集上的编辑选项.(这类似于使用git rebase -i.)

  2. 使用hg record有选择地提交修改为单独的变更.

  3. 使用hg histedit --continue时,即可大功告成.剩余的未提交更改将包含在最终更改集中.

正如其他人所提到的,你可以hg crecord代替使用hg record.


Mat*_*hen 22

你是正确的,没有git风格的索引.您可以使用hg record(与Mercurial一起发布)或hg crecord.两者都允许您在提交时选择每个文件或每个块. crecord是一个更复杂,但需要诅咒.

更新(2016-11-19)

现在,crecord扩展的功能在核心Mercurial中可用.此外,使用更好地集成.提交所选帅哥的首选方式是

$ hg commit --interactive
Run Code Online (Sandbox Code Playgroud)

默认情况下,其行为类似于旧记录命令.要获得诅咒基于界面像老crecord命令,设置这个在您的HGRC:

[ui]
interface = curses
Run Code Online (Sandbox Code Playgroud)