'''command to transplant changesets from another branch
-This extension allows you to transplant patches from another branch.
+This extension allows you to transplant changes to another parent revision,
+possibly in another repository. The transplant is done using 'diff' patches.
Transplanted patches are recorded in .hg/transplant/transplants, as a
map from a changeset hash to its hash in the source repository.
return (transplants, merges)
- [('s', 'source', '', _('
pull patches from REPO'), _('REPO')),
+ [('s', 'source', '', _('s from REPO'), _('REPO')),
('b', 'branch', , _('use this source changeset as head'), _('REV')),
('a', 'all', None, _('pull all changesets up to the --branch revisions')),
('p', 'prune', , _('skip over REV'), _('REV')),
('e', 'edit', False, _('invoke editor on commit messages')),
('', 'log', None, _('append transplant info to log message')),
('c', 'continue', None, _('continue last transplant session '
+ 'after ')),
_('filter changesets through command'), _('CMD'))],
_('hg transplant [-s REPO] [-b BRANCH [-a]] [-p REV] '
Selected changesets will be applied on top of the current working
directory with the log of the original changeset. The changesets
- are copied and will thus appear twice in the history. Use the
- rebase extension instead if you want to move a whole branch of
- unpublished changesets.
+ are copied and will thus appear twice in the history with different
+ Consider using the graft command if everything is inside the same
+ repository - it will use merges and will usually give a better result.
+ Use the rebase extension if the changesets are unpublished and you want
+ to move them instead of copying them.
If --log is specified, log messages will have a comment appended
Its argument will be invoked with the current changelog message as
- If --source/-s is specified, selects changesets from the named
+ --source/-s specifies another repository to use for selecting changesets,
+ just as if it temporarily had been pulled.
If --branch/-b is specified, these revisions will be used as
heads when deciding which changsets to transplant, just as if only
these revisions had been pulled.
if opts.get('branch') or opts.get('all') or opts.get('merge'):
raise util.Abort(_('--continue is incompatible with '
- 'branch, all
+ '-branch, -all merge'))
if not (opts.get('source') or revs or
opts.get('merge') or opts.get('branch')):