Mercurial > public > mercurial-scm > hg-stable
diff mercurial/bundlerepo.py @ 5664:da72b4d24797
Fix income/pull with bundle and -R (issue 820).
Uses ui.setconfig() to tell bundlerepo where the main repo is. This is
needed for when the --repository option is used.
Adds tests to test-bundle and a new test script
test-mq-pull-from-bundle, which plays out the situation that initially
made me detect this bug
(hg -R .hg/patches pull ../bundle.hg).
author | Peter Arrenbrecht <peter.arrenbrecht@gmail.com> |
---|---|
date | Tue, 18 Dec 2007 14:11:13 -0600 |
parents | 7c1a9a21dcd7 |
children | 3d666e8e6398 |
line wrap: on
line diff
--- a/mercurial/bundlerepo.py Sat Nov 03 11:11:13 2007 +0100 +++ b/mercurial/bundlerepo.py Tue Dec 18 14:11:13 2007 -0600 @@ -256,14 +256,25 @@ def instance(ui, path, create): if create: raise util.Abort(_('cannot create new bundle repository')) + parentpath = ui.config("bundle", "mainreporoot", "") + if parentpath: + # Try to make the full path relative so we get a nice, short URL. + # In particular, we don't want temp dir names in test outputs. + cwd = os.getcwd() + if parentpath == cwd: + parentpath = '' + else: + cwd = os.path.join(cwd,'') + if parentpath.startswith(cwd): + parentpath = parentpath[len(cwd):] path = util.drop_scheme('file', path) if path.startswith('bundle:'): path = util.drop_scheme('bundle', path) s = path.split("+", 1) if len(s) == 1: - repopath, bundlename = "", s[0] + repopath, bundlename = parentpath, s[0] else: repopath, bundlename = s else: - repopath, bundlename = '', path + repopath, bundlename = parentpath, path return bundlerepository(ui, repopath, bundlename)