Mercurial > hg > mercurial-source
changeset 11154:17031fea4e95 stable
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).
author | Alexander Solovyov <piranha@piranha.org.ua> |
---|---|
date | Mon, 07 Dec 2009 12:31:45 +0200 |
parents | e0a0af140f2e |
children | b203a95fe68b fdcf80f26604 |
files | mercurial/bundlerepo.py mercurial/hg.py mercurial/localrepo.py tests/test-schemes tests/test-schemes.out |
diffstat | 5 files changed, 12 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundlerepo.py +++ b/mercurial/bundlerepo.py @@ -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 +++ b/mercurial/hg.py @@ -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 +++ b/mercurial/localrepo.py @@ -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 +++ b/tests/test-schemes @@ -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