Mercurial > evolve
changeset 263:de62daaf2054
amend: drop --branches, pick it from working directory
The amended changeset branch was picked either from --branch or from the
first parent, but the actual working directory branch was ignored. The
behaviour is changed so the amended revision branch is picked from the
intermediate revision, which branch comes from the usual working
directory rules. --branch is thus replaced by "hg branch".
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Tue, 12 Jun 2012 11:14:02 +0200 |
parents | 4675d9c6c66b |
children | 1c21865bf8ba |
files | hgext/evolve.py tests/test-amend.t |
diffstat | 2 files changed, 35 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/evolve.py Tue Jun 12 11:08:27 2012 +0200 +++ b/hgext/evolve.py Tue Jun 12 11:14:02 2012 +0200 @@ -112,6 +112,8 @@ user = commitopts.get('user') or old.user() date = commitopts.get('date') or None # old.date() + extra = dict(commitopts.get('extra', {})) + extra['branch'] = head.branch() new = context.memctx(repo, parents=newbases, @@ -120,7 +122,7 @@ filectxfn=filectxfn, user=user, date=date, - extra=commitopts.get('extra') or None) + extra=extra) if commitopts.get('edit'): new._text = cmdutil.commitforceeditor(repo, new, []) @@ -352,8 +354,6 @@ _('use text as commit message for this update')), ('c', 'change', '', _('specifies the changeset to amend'), _('REV')), - ('b', 'branch', '', - _('specifies a branch for the new.'), _('REV')), ('e', 'edit', False, _('edit commit message.'), _('')), ] + walkopts + commitopts + commitopts2, @@ -389,12 +389,6 @@ if change == '.': change = 'p1(p1())' old = scmutil.revsingle(repo, change) - branch = opts.get('branch') - if branch: - opts.setdefault('extra', {})['branch'] = branch - else: - if old.branch() != 'default': - opts.setdefault('extra', {})['branch'] = old.branch() lock = repo.lock() try: @@ -421,7 +415,7 @@ updatenodes = set(cl.nodesbetween(roots=[old.node()], heads=[head.node()])[0]) updatenodes.remove(old.node()) - okoptions = ['message', 'logfile', 'edit', 'user', 'branch'] + okoptions = ['message', 'logfile', 'edit', 'user'] if not updatenodes: for o in okoptions: if opts.get(o):
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-amend.t Tue Jun 12 11:14:02 2012 +0200 @@ -0,0 +1,31 @@ + $ cat >> $HGRCPATH <<EOF + > [defaults] + > amend=-d "0 0" + > [extensions] + > hgext.rebase= + > hgext.graphlog= + > EOF + $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> $HGRCPATH + $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH + + $ hg init repo + $ cd repo + $ echo a > a + $ hg ci -Am adda + adding a + +Test amend captures branches + + $ hg branch foo + marked working directory as branch foo + (branches are permanent and global, did you want a bookmark?) + $ hg amend + $ hg branch + foo + $ hg branches + foo 2:a34b93d251e4 + default 0:07f494440405 (inactive) + $ hg glog --template '{rev}@{branch} {desc|firstline}\n' + @ 2@foo adda + +