diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -37,6 +37,7 @@ hook, profiling, pycompat, + rcutil, registrar, scmutil, ui as uimod, @@ -902,17 +903,20 @@ _(b"error getting current working directory: %s") % encoding.strtolocal(e.strerror) ) + path = cmdutil.findrepo(wd) or b"" if not path: lui = ui else: lui = ui.copy() - lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) + if rcutil.use_repo_hgrc(): + lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) if rpath: path = lui.expandpath(rpath) lui = ui.copy() - lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) + if rcutil.use_repo_hgrc(): + lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) return path, lui diff --git a/tests/test-hgrc.t b/tests/test-hgrc.t --- a/tests/test-hgrc.t +++ b/tests/test-hgrc.t @@ -271,3 +271,13 @@ $ HGRCSKIPREPO=1 hg path foo = $TESTTMP/bar + $ cat >> .hg/hgrc < [broken + > EOF + + $ hg path + hg: parse error at $TESTTMP/.hg/hgrc:3: [broken + [255] + $ HGRCSKIPREPO=1 hg path + foo = $TESTTMP/bar +