In Mercurial what's the difference between hg graft and hg rebase

后端 未结 1 457
一向
一向 2021-02-01 15:20

I know Rebase is a (bundled) extension, while Graft is a core feature (that replaced the Transplant (bundled) extension).

graft is document

1条回答
  •  夕颜
    夕颜 (楼主)
    2021-02-01 15:59

    hg graft allows "cherry-picking," as you noted in your question. For example, you can run hg graft -D "2085::2093 and not 2091" to copy only some changes from another revision. By comparison, hg rebase (with or without --keep) will grab whatever changeset you specify and all of its decendant changes.

    Also, rebase allows you to collapse changesets (with --collapse). As far as I can tell, graft does not.

    One more difference I have noticed: hg graft --edit 123 lets you graft revision 123 to the working directory and edit the commit message. I can't find an hg rebase equivalent. I should point out, though, that hg histedit also allows for editing the commit message while rebasing.

    There are probably other differences that I am not thinking of. SO community: feel free to point those out in the comments, and I will happily revise this answer to make it more complete.

    See the graft documentation and the Rebase Extension documentation for more details.

    0 讨论(0)
提交回复
热议问题