D7807: hgrc: introduce HGRCSKIPREPO to skip reading the repository's hgrc

marmoute (Pierre-Yves David) phabricator at mercurial-scm.org
Thu Jan 9 03:46:01 EST 2020


marmoute retitled this revision from "hgrc: introduce HGRCSKIPREPO to skip reading the hgrc's repository" to "hgrc: introduce HGRCSKIPREPO to skip reading the repository's hgrc".
marmoute updated this revision to Diff 19120.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D7807?vs=19059&id=19120

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7807/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7807

AFFECTED FILES
  mercurial/helptext/environment.txt
  mercurial/helptext/scripting.txt
  mercurial/localrepo.py
  tests/test-hgrc.t

CHANGE DETAILS

diff --git a/tests/test-hgrc.t b/tests/test-hgrc.t
--- a/tests/test-hgrc.t
+++ b/tests/test-hgrc.t
@@ -258,3 +258,16 @@
   plain: True
   read config from: $TESTTMP/hgrc
   $TESTTMP/hgrc:17: paths.foo=$TESTTMP/bar
+
+Test we can skip the user configuration
+
+  $ cat >> .hg/hgrc <<EOF
+  > [paths]
+  > elephant = babar
+  > EOF
+  $ hg path
+  elephant = $TESTTMP/babar
+  foo = $TESTTMP/bar
+  $ HGRCSKIPREPO=1 hg path
+  foo = $TESTTMP/bar
+
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -676,6 +676,8 @@
     configs are loaded. For example, an extension may wish to pull in
     configs from alternate files or sources.
     """
+    if b'HGRCSKIPREPO' in encoding.environ:
+        return False
     try:
         ui.readconfig(hgvfs.join(b'hgrc'), root=wdirvfs.base)
         return True
diff --git a/mercurial/helptext/scripting.txt b/mercurial/helptext/scripting.txt
--- a/mercurial/helptext/scripting.txt
+++ b/mercurial/helptext/scripting.txt
@@ -74,6 +74,14 @@
     like the username and extensions that may be required to interface
     with a repository.
 
+HGRCSKIPREPO
+    When set, the .hg/hgrc from repositories are not read.
+
+    Note that not reading the repository's configuration can have
+    unintended consequences, as the repository config files can define
+    things like extensions that are required for access to the
+    repository.
+
 Command-line Flags
 ==================
 
diff --git a/mercurial/helptext/environment.txt b/mercurial/helptext/environment.txt
--- a/mercurial/helptext/environment.txt
+++ b/mercurial/helptext/environment.txt
@@ -49,6 +49,9 @@
     - if it's a directory, all files ending with .rc are added
     - otherwise, the file itself will be added
 
+HGRCSKIPREPO
+    When set, the .hg/hgrc from repositories are not read.
+
 HGPLAIN
     When set, this disables any configuration settings that might
     change Mercurial's default output. This includes encoding,



To: marmoute, #hg-reviewers
Cc: durin42, krbullock, pulkit, mercurial-devel


More information about the Mercurial-devel mailing list