expand paths to local repository or bundle in appropriate classes stable
authorAlexander Solovyov <piranha@piranha.org.ua>
Mon, 07 Dec 2009 12:31:45 +0200
branchstable
changeset 11154 17031fea4e95
parent 11143 e0a0af140f2e
child 11156 b203a95fe68b
child 11160 fdcf80f26604
expand paths to local repository or bundle in appropriate classes This avoids problem with unexpanded paths when it's not possible to expand it at higher level (for example, if file:~/path/ is supplied as path in schemes).
mercurial/bundlerepo.py
mercurial/hg.py
mercurial/localrepo.py
tests/test-schemes
tests/test-schemes.out
--- a/mercurial/bundlerepo.py	Tue May 11 20:13:52 2010 +0200
+++ b/mercurial/bundlerepo.py	Mon Dec 07 12:31:45 2009 +0200
@@ -166,7 +166,7 @@
             localrepo.localrepository.__init__(self, ui, self._tempparent)
 
         if path:
-            self._url = 'bundle:' + path + '+' + bundlename
+            self._url = 'bundle:' + util.expandpath(path) + '+' + bundlename
         else:
             self._url = 'bundle:' + bundlename
 
--- a/mercurial/hg.py	Tue May 11 20:13:52 2010 +0200
+++ b/mercurial/hg.py	Mon Dec 07 12:31:45 2009 +0200
@@ -15,8 +15,8 @@
 import errno, os, shutil
 
 def _local(path):
-    return (os.path.isfile(util.drop_scheme('file', path)) and
-            bundlerepo or localrepo)
+    path = util.expandpath(util.drop_scheme('file', path))
+    return (os.path.isfile(path) and bundlerepo or localrepo)
 
 def addbranchrevs(lrepo, repo, branches, revs):
     if not branches:
--- a/mercurial/localrepo.py	Tue May 11 20:13:52 2010 +0200
+++ b/mercurial/localrepo.py	Mon Dec 07 12:31:45 2009 +0200
@@ -24,7 +24,7 @@
 
     def __init__(self, baseui, path=None, create=0):
         repo.repository.__init__(self)
-        self.root = os.path.realpath(path)
+        self.root = os.path.realpath(util.expandpath(path))
         self.path = os.path.join(self.root, ".hg")
         self.origroot = path
         self.opener = util.opener(self.path)
--- a/tests/test-schemes	Tue May 11 20:13:52 2010 +0200
+++ b/tests/test-schemes	Mon Dec 07 12:31:45 2009 +0200
@@ -7,6 +7,7 @@
 [schemes]
 l = http://localhost:$HGPORT/
 parts = http://{1}:$HGPORT/
+z = file:\$PWD/
 EOF
 
 hg init test
@@ -22,5 +23,8 @@
 echo % check that {1} syntax works
 hg incoming --debug parts://localhost | sed 's/[0-9]//g'
 
+echo % check that paths are expanded
+PWD=`pwd` hg incoming z://
+
 echo % errors
 cat errors.log
--- a/tests/test-schemes.out	Tue May 11 20:13:52 2010 +0200
+++ b/tests/test-schemes.out	Mon Dec 07 12:31:45 2009 +0200
@@ -9,4 +9,8 @@
 sending heads command
 searching for changes
 no changes found
+% check that paths are expanded
+comparing with z://
+searching for changes
+no changes found
 % errors