Show More
@@ -629,7 +629,7 b' def bundle(ui, repo, fname, dest="defaul' | |||
|
629 | 629 | contents including permissions, rename data, and revision history. |
|
630 | 630 | """ |
|
631 | 631 | f = open(fname, "wb") |
|
632 |
dest = ui.expandpath(dest |
|
|
632 | dest = ui.expandpath(dest) | |
|
633 | 633 | other = hg.repository(ui, dest) |
|
634 | 634 | o = repo.findoutgoing(other) |
|
635 | 635 | cg = repo.changegroup(o, 'bundle') |
@@ -1543,7 +1543,7 b' def incoming(ui, repo, source="default",' | |||
|
1543 | 1543 | |
|
1544 | 1544 | Currently only local repositories are supported. |
|
1545 | 1545 | """ |
|
1546 |
source = ui.expandpath(source |
|
|
1546 | source = ui.expandpath(source) | |
|
1547 | 1547 | other = hg.repository(ui, source) |
|
1548 | 1548 | if not other.local(): |
|
1549 | 1549 | raise util.Abort(_("incoming doesn't work for remote repositories yet")) |
@@ -1730,7 +1730,7 b' def outgoing(ui, repo, dest="default-pus' | |||
|
1730 | 1730 | |
|
1731 | 1731 | See pull for valid source format details. |
|
1732 | 1732 | """ |
|
1733 |
dest = ui.expandpath(dest |
|
|
1733 | dest = ui.expandpath(dest) | |
|
1734 | 1734 | other = hg.repository(ui, dest) |
|
1735 | 1735 | o = repo.findoutgoing(other) |
|
1736 | 1736 | o = repo.changelog.nodesbetween(o)[0] |
@@ -1804,7 +1804,7 b' def pull(ui, repo, source="default", **o' | |||
|
1804 | 1804 | to the remote user's home directory by default; use two slashes at |
|
1805 | 1805 | the start of a path to specify it as relative to the filesystem root. |
|
1806 | 1806 | """ |
|
1807 |
source = ui.expandpath(source |
|
|
1807 | source = ui.expandpath(source) | |
|
1808 | 1808 | ui.status(_('pulling from %s\n') % (source)) |
|
1809 | 1809 | |
|
1810 | 1810 | if opts['ssh']: |
@@ -1849,7 +1849,7 b' def push(ui, repo, dest="default-push", ' | |||
|
1849 | 1849 | SSH requires an accessible shell account on the destination |
|
1850 | 1850 | machine and a copy of hg in the remote path. |
|
1851 | 1851 | """ |
|
1852 |
dest = ui.expandpath(dest |
|
|
1852 | dest = ui.expandpath(dest) | |
|
1853 | 1853 | ui.status('pushing to %s\n' % (dest)) |
|
1854 | 1854 | |
|
1855 | 1855 | if opts['ssh']: |
@@ -47,7 +47,7 b' class localrepository(object):' | |||
|
47 | 47 | |
|
48 | 48 | self.dirstate = dirstate.dirstate(self.opener, self.ui, self.root) |
|
49 | 49 | try: |
|
50 | self.ui.readconfig(self.join("hgrc")) | |
|
50 | self.ui.readconfig(self.join("hgrc"), self.root) | |
|
51 | 51 | except IOError: |
|
52 | 52 | pass |
|
53 | 53 |
@@ -48,7 +48,7 b' class ui(object):' | |||
|
48 | 48 | self.debugflag = (self.debugflag or debug) |
|
49 | 49 | self.interactive = (self.interactive and interactive) |
|
50 | 50 | |
|
51 | def readconfig(self, fn): | |
|
51 | def readconfig(self, fn, root=None): | |
|
52 | 52 | if isinstance(fn, basestring): |
|
53 | 53 | fn = [fn] |
|
54 | 54 | for f in fn: |
@@ -56,6 +56,12 b' class ui(object):' | |||
|
56 | 56 | self.cdata.read(f) |
|
57 | 57 | except ConfigParser.ParsingError, inst: |
|
58 | 58 | raise util.Abort(_("Failed to parse %s\n%s") % (f, inst)) |
|
59 | # translate paths relative to root (or home) into absolute paths | |
|
60 | if root is None: | |
|
61 | root = os.path.expanduser('~') | |
|
62 | for name, path in self.configitems("paths"): | |
|
63 | if path.find("://") == -1 and not os.path.isabs(path): | |
|
64 | self.cdata.set("paths", name, os.path.join(root, path)) | |
|
59 | 65 | |
|
60 | 66 | def setconfig(self, section, name, val): |
|
61 | 67 | self.overlay[(section, name)] = val |
@@ -153,19 +159,12 b' class ui(object):' | |||
|
153 | 159 | user = user[f+1:] |
|
154 | 160 | return user |
|
155 | 161 | |
|
156 |
def expandpath(self, loc |
|
|
162 | def expandpath(self, loc): | |
|
157 | 163 | """Return repository location relative to cwd or from [paths]""" |
|
158 | if os.path.exists(loc): | |
|
164 | if loc.find("://") != -1 or os.path.exists(loc): | |
|
159 | 165 | return loc |
|
160 | 166 | |
|
161 | paths = {} | |
|
162 | for name, path in self.configitems("paths"): | |
|
163 | m = path.find("://") | |
|
164 | if m == -1: | |
|
165 | path = os.path.join(root, path) | |
|
166 | paths[name] = path | |
|
167 | ||
|
168 | return paths.get(loc, loc) | |
|
167 | return self.config("paths", loc, loc) | |
|
169 | 168 | |
|
170 | 169 | def write(self, *args): |
|
171 | 170 | for a in args: |
General Comments 0
You need to be logged in to leave comments.
Login now