subrepo: fix hgrc paths section during subrepo pulling
There are two bugs in current subrepo ctor:
- hgrc paths were using parent repo (ctx._repo) instead of self._repo
- it was joined with local extract path, not its source repo path
Fixed both bugs using _abssource on self once it is fully initialized.
It gets the job done perfectly for pull and push urls.
--- a/mercurial/subrepo.py Tue Mar 09 12:09:57 2010 +0100
+++ b/mercurial/subrepo.py Sun Mar 14 00:28:10 2010 +0100
@@ -193,8 +193,11 @@
fp.write('%s = %s\n' % (key, value))
self._repo.ui.setconfig('paths', key, value)
- defpath = os.path.join(_abssource(ctx._repo), path)
+ defpath = _abssource(self._repo)
+ defpushpath = _abssource(self._repo, True)
addpathconfig('default', defpath)
+ if defpath != defpushpath:
+ addpathconfig('default-push', defpushpath)
fp.close()
def dirty(self):
--- a/tests/test-subrepo.out Tue Mar 09 12:09:57 2010 +0100
+++ b/tests/test-subrepo.out Sun Mar 14 00:28:10 2010 +0100
@@ -263,6 +263,6 @@
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
[paths]
-default = $HGTMP/test-subrepo/sub/mercurial/main/nested_absolute
+default = $HGTMP/test-subrepo/sub/mercurial/nested_absolute
[paths]
-default = $HGTMP/test-subrepo/sub/mercurial/main/nested_relative
+default = $HGTMP/test-subrepo/sub/mercurial/main/../nested_relative