Mercurial > hg
changeset 16810:846607ff274f
keyword: support commit --amend (issue3471)
Include a test as well.
author | Christian Ebert <blacktrash@gmx.net> |
---|---|
date | Sat, 26 May 2012 20:46:12 +0200 |
parents | 6b704fa2bea1 |
children | f8c495cc6313 |
files | hgext/keyword.py tests/test-keyword.t |
diffstat | 2 files changed, 32 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/keyword.py Fri May 25 19:32:29 2012 +0200 +++ b/hgext/keyword.py Sat May 26 20:46:12 2012 +0200 @@ -625,6 +625,21 @@ kwt.match = util.never return orig(web, req, tmpl) + def kw_amend(orig, ui, repo, commitfunc, old, extra, pats, opts): + '''Wraps cmdutil.amend expanding keywords after amend.''' + wlock = repo.wlock() + try: + kwt.postcommit = True + newid = orig(ui, repo, commitfunc, old, extra, pats, opts) + if newid != old.node(): + ctx = repo[newid] + kwt.restrict = True + kwt.overwrite(ctx, ctx.files(), False, True) + kwt.restrict = False + return newid + finally: + wlock.release() + def kw_copy(orig, ui, repo, pats, opts, rename=False): '''Wraps cmdutil.copy so that copy/rename destinations do not contain expanded keywords. @@ -690,6 +705,7 @@ extensions.wrapfunction(context.filectx, 'cmp', kwfilectx_cmp) extensions.wrapfunction(patch.patchfile, '__init__', kwpatchfile_init) extensions.wrapfunction(patch, 'diff', kw_diff) + extensions.wrapfunction(cmdutil, 'amend', kw_amend) extensions.wrapfunction(cmdutil, 'copy', kw_copy) for c in 'annotate changeset rev filediff diff'.split(): extensions.wrapfunction(webcommands, c, kwweb_skip)
--- a/tests/test-keyword.t Fri May 25 19:32:29 2012 +0200 +++ b/tests/test-keyword.t Sat May 26 20:46:12 2012 +0200 @@ -495,6 +495,22 @@ $ hg forget i $ rm i +amend + + $ echo amend >> a + $ echo amend >> b + $ hg -q commit -d '1 14' -m 'prepare amend' + + $ hg --debug commit --amend -d '1 15' -m 'amend without changes' | grep keywords + invalidating branch cache (tip differs) + overwriting a expanding keywords + $ hg -q id + a71343332ea9 + $ head -1 a + expand $Id: a,v a71343332ea9 1970/01/01 00:00:01 test $ + + $ hg -q strip -n tip + Test patch queue repo $ hg init --mq