chgserver: do not treat HG as sensitive environ when CHGHG is set
authorJun Wu <quark@fb.com>
Wed, 18 Oct 2017 14:55:39 -0700
changeset 34887 7bf7544fd6cc
parent 34886 dbb542326582
child 34888 317566f0c2e6
chgserver: do not treat HG as sensitive environ when CHGHG is set When `$CHGHG` is set, `$HG` is ignored by the chg client. Removing it from chg's sensitive environment list would avoid starting up servers unnecessarily when `$CHGHG` is the same while `$HG` is different. Differential Revision: https://phab.mercurial-scm.org/D1177
mercurial/chgserver.py
--- a/mercurial/chgserver.py	Wed Oct 18 22:54:50 2017 +0200
+++ b/mercurial/chgserver.py	Wed Oct 18 14:55:39 2017 -0700
@@ -108,8 +108,13 @@
     for section, item in _configsectionitems:
         sectionitems.append(ui.config(section, item))
     sectionhash = _hashlist(sectionitems)
+    # If $CHGHG is set, the change to $HG should not trigger a new chg server
+    if 'CHGHG' in encoding.environ:
+        ignored = {'HG'}
+    else:
+        ignored = set()
     envitems = [(k, v) for k, v in encoding.environ.iteritems()
-                if _envre.match(k)]
+                if _envre.match(k) and k not in ignored]
     envhash = _hashlist(sorted(envitems))
     return sectionhash[:6] + envhash[:6]