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

login
register
mail settings
Submitter phabricator
Date Jan. 21, 2020, 4:27 p.m.
Message ID <5eaf713a3acb851a405d8404dfef4c4d@localhost.localdomain>
Download mbox | patch
Permalink /patch/44551/
State Not Applicable
Headers show

Comments

phabricator - Jan. 21, 2020, 4:27 p.m.
Closed by commit rHGd56a2d6f34f0: hgrc: introduce HGRCSKIPREPO to skip reading the repository&#039;s hgrc (authored by marmoute).
This revision was automatically updated to reflect the committed changes.

REPOSITORY
  rHG Mercurial

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

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




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

Patch

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,