# HG changeset patch # User Patrick Mezard # Date 1339492442 -7200 # Node ID de62daaf2054a27f9f03ae469b6e9d5883b989de # Parent 4675d9c6c66bf340401ff2e9855a33e9e729953a 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". diff -r 4675d9c6c66b -r de62daaf2054 hgext/evolve.py --- 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): diff -r 4675d9c6c66b -r de62daaf2054 tests/test-amend.t --- /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 < [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 + +