From patchwork Mon Feb 17 03:29:37 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3, of, 4, V3, RESEND] ui: edit(): rebase, graft: set HGREVISION environment variable for an editor From: Alexander Drozdov X-Patchwork-Id: 3683 Message-Id: <3dc40b4b56301758c818.1392607777@localhost6.localdomain6> To: mercurial-devel@selenic.com Date: Mon, 17 Feb 2014 07:29:37 +0400 # HG changeset patch # User Alexander Drozdov # Date 1391674880 -14400 # Thu Feb 06 12:21:20 2014 +0400 # Node ID 3dc40b4b56301758c818e374df04af72f36bb7de # Parent 5d444f429e90fda0290d8c57287420fdde3cb2c8 ui: edit(): rebase, graft: set HGREVISION environment variable for an editor rebase and graft commands set 'rebase_source' or 'source' extras for the revision. Allow an editor to access the extras using HGREVISION environment variable. This may be useful when an editor is actually a script which modifies a commit message. The name 'HGREVISION' has been selected as transplant already sets this variable for its filters (--filter). diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -720,10 +720,16 @@ f.write(text) f.close() + environ = {'HGUSER': user} + for label in ('source', 'rebase_source'): + if label in extra: + environ.update({'HGREVISION': extra[label]}) + break + editor = self.geteditor() util.system("%s \"%s\"" % (editor, name), - environ={'HGUSER': user}, + environ=environ, onerr=util.Abort, errprefix=_("edit failed"), out=self.fout)