[PATCH 4 of 4] ui: edit(): transplant: set HGREVISION environment variable for an editor
Mads Kiilerich
mads at kiilerich.com
Fri Feb 7 07:24:14 CST 2014
On 02/07/2014 05:26 AM, Alexander Drozdov wrote:
> # HG changeset patch
> # User Alexander Drozdov <al.drozdov at gmail.com>
> # Date 1391746185 -14400
> # Fri Feb 07 08:09:45 2014 +0400
> # Node ID 8b9f2ec2dde1e08580bd5893ce6253acc940a837
> # Parent 01079ca49c16f7c0c3d53ba673f424368aea075e
> ui: edit(): transplant: set HGREVISION environment variable for an editor
>
> transplant command set 'transplant_source' extra for the revision.
> Allow an editor to access the extra using HGREVISION environment variable.
But ... it _is_ not this HGREVISION. Calling it that would be confusing.
It is more like what we in revsets refer to as 'origin'.
I think it would be better to follow the HG_ naming convention used when
Mercurial passes values to hooks. That would be inconsistent with HGUSER
... but HGUSER is primarily input to Mercurial, not output...
>
> This may be useful when an editor is actually a script which modifies a commit
> message. Transplant filters is an alternative way to do it.
In my opinion this patch set is split up in so small pieces that the
individual pieces don't make sense.
Why take an extra parameter if it never is used? How can it be correct
to pass any value for this parameter when it not is used and we don't
know anything about the type or the semantics?
In this case I would prefer it all folded into one patch. Others might
like it the way it is ...
> diff --git a/mercurial/ui.py b/mercurial/ui.py
> --- a/mercurial/ui.py
> +++ b/mercurial/ui.py
> @@ -8,6 +8,7 @@
> from i18n import _
> import errno, getpass, os, socket, sys, tempfile, traceback
> import config, scmutil, util, error, formatter
> +from node import hex
>
> class ui(object):
> def __init__(self, src=None):
> @@ -721,6 +722,10 @@
> f.close()
>
> environ = {'HGUSER': user}
> + for label in ('transplant_source',):
> + if label in extra:
> + environ.update({'HGREVISION': hex(extra[label])})
> + break
Keep it simple. Why not just
+ if 'transplant_source' in extra:
+ environ.update({'HGREVISION': hex(extra['transplant_source'])})
/Mads
More information about the Mercurial-devel
mailing list