Mercurial > public > mercurial-scm > hg
diff hgext/transplant.py @ 13579:3cbb3c57a50e
transplant: added 'HGREVISION' variable to the environment passed to the 'filter' command
Sometimes it is necessary to know the original revision ID in order to
correctly rewrite the patch or commit message when transplanting. This
patch follows the pattern set by the existing 'HGUSER' environment variable,
and adds a test that covers both HGUSER and HGREVISION.
author | Luke Plant <L.Plant.98@cantab.net> |
---|---|
date | Fri, 11 Mar 2011 15:48:44 +0000 |
parents | 3da456d0c885 |
children | 2151703e7f84 |
line wrap: on
line diff
--- a/hgext/transplant.py Fri Mar 11 12:42:07 2011 +0100 +++ b/hgext/transplant.py Fri Mar 11 15:48:44 2011 +0000 @@ -177,12 +177,11 @@ lock.release() wlock.release() - def filter(self, filter, changelog, patchfile): + def filter(self, filter, node, changelog, patchfile): '''arbitrarily rewrite changeset before applying it''' self.ui.status(_('filtering %s\n') % patchfile) user, date, msg = (changelog[1], changelog[2], changelog[4]) - fd, headerfile = tempfile.mkstemp(prefix='hg-transplant-') fp = os.fdopen(fd, 'w') fp.write("# HG changeset patch\n") @@ -194,7 +193,9 @@ try: util.system('%s %s %s' % (filter, util.shellquote(headerfile), util.shellquote(patchfile)), - environ={'HGUSER': changelog[1]}, + environ={'HGUSER': changelog[1], + 'HGREVISION': revlog.hex(node), + }, onerr=util.Abort, errprefix=_('filter failed')) user, date, msg = self.parselog(file(headerfile))[1:4] finally: @@ -209,7 +210,7 @@ date = "%d %d" % (time, timezone) extra = {'transplant_source': node} if filter: - (user, date, message) = self.filter(filter, cl, patchfile) + (user, date, message) = self.filter(filter, node, cl, patchfile) if log: # we don't translate messages inserted into commits