Mercurial > public > mercurial-scm > hg-stable
diff hgext/keyword.py @ 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 |
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)