[PATCH 3 of 3] dispatch: properly handle relative path aliases used with -R (issue2376)

Brodie Rao brodie at bitheap.org
Mon Oct 4 15:08:36 CDT 2010


# HG changeset patch
# User Brodie Rao <brodie at bitheap.org>
# Date 1286222832 18000
# Node ID 433bd31c2492ca18b42598e8b14a6502b0064d4e
# Parent  73221ab2b97452cc4834e60b1d4fc66fd766d517
dispatch: properly handle relative path aliases used with -R (issue2376)

This ensures the repo config is read relative to the repo root during
dispatch.

diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -420,12 +420,12 @@ def _getlocal(ui, rpath):
         lui = ui
     else:
         lui = ui.copy()
-        lui.readconfig(os.path.join(path, ".hg", "hgrc"))
+        lui.readconfig(os.path.join(path, ".hg", "hgrc"), path)
 
     if rpath:
         path = lui.expandpath(rpath[-1])
         lui = ui.copy()
-        lui.readconfig(os.path.join(path, ".hg", "hgrc"))
+        lui.readconfig(os.path.join(path, ".hg", "hgrc"), path)
 
     return path, lui
 
diff --git a/tests/test-globalopts.t b/tests/test-globalopts.t
--- a/tests/test-globalopts.t
+++ b/tests/test-globalopts.t
@@ -20,6 +20,10 @@
   updating to branch default
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd c
+  $ cat >> .hg/hgrc <<EOF
+  > [paths]
+  > relative = ../a
+  > EOF
   $ hg pull -f ../b
   pulling from ../b
   searching for changes
@@ -59,11 +63,17 @@ Testing -R/--repository:
   $ hg -R file://localhost/`pwd`/a/ identify
   8580ff50825a tip
 
--R with a path alias:
+-R with path aliases:
 
   $ cd c
   $ hg -R default identify
   8580ff50825a tip
+  $ hg -R relative identify
+  8580ff50825a tip
+  $ echo '[paths]' >> $HGRCPATH
+  $ echo 'relativetohome = a' >> $HGRCPATH
+  $ HOME=`pwd`/../ hg -R relativetohome identify
+  8580ff50825a tip
   $ cd ..
 
 Implicit -R:


More information about the Mercurial-devel mailing list