This looks like a fairly common and straightforward requirement, but I've looked into transplant extension, rebase, import, export, etc, and I have yet to figure it out. Hopefully I am missing out something obvious.
I would like to "merge" two branches (named branches, to be specific) such that the branches themselves don't go away. Essentially, I want to pull changes from a revision but manually resolve cherrypick changes/conflicts (using my merge program).
It seems that import, export, transplant, etc generate patches and changesets that are directly applied to the current working directory. But I don't want that... instead, I want to manually determine what changes go in.
Appreciate your help.
I would like to "merge" two branches (named branches, to be specific) such that the branches themselves don't go away.
This is the default behavior. For example, if you look at the default
branch of the mercurial source code, you'll see that it regularly merges with stable
. These merges do not make default
or stable
disappear. The merge commit just gets the local branch name.
I want to manually determine what changes go in.
Sounds to me like transplant already does that. Alternatively, you can make each change on its own feature branch and then you have full control over which features get merged into a branch.
update: there is now also a core graft command.