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).
--- 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