Mercurial > public > mercurial-scm > hg
comparison mercurial/pathutil.py @ 34965:f445b10dc7fb stable
pathutil: use util.pathto() to calculate relative cwd in canonpath()
os.path.relpath() exploded if the 'root' and 'cwd' directories had different
drive letters. I noticed this in TortoiseHg when typing a fileset into the
filter, and it kept complaining until the closing '()' was typed. This was
reproducible on the command line with:
$ cd /d
$ hg -R /c/Users/Matt/Projects/hg files 'set:e'
Traceback (most recent call last):
...
File "mercurial\pathutil.pyc", line 182, in canonpath
File "ntpath.pyc", line 529, in relpath
ValueError: path is on drive c:, start on drive d:
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 02 Nov 2017 20:35:31 -0400 |
parents | cd022a11ec83 |
children | 705d0f2bb677 |
comparison
equal
deleted
inserted
replaced
34955:95f54cec0025 | 34965:f445b10dc7fb |
---|---|
182 # instead of cwd. Detect that case, and provide a hint to the user. | 182 # instead of cwd. Detect that case, and provide a hint to the user. |
183 hint = None | 183 hint = None |
184 try: | 184 try: |
185 if cwd != root: | 185 if cwd != root: |
186 canonpath(root, root, myname, auditor) | 186 canonpath(root, root, myname, auditor) |
187 hint = (_("consider using '--cwd %s'") | 187 relpath = util.pathto(root, cwd, '') |
188 % os.path.relpath(root, cwd)) | 188 if relpath[-1] == pycompat.ossep: |
189 relpath = relpath[:-1] | |
190 hint = (_("consider using '--cwd %s'") % relpath) | |
189 except error.Abort: | 191 except error.Abort: |
190 pass | 192 pass |
191 | 193 |
192 raise error.Abort(_("%s not under root '%s'") % (myname, root), | 194 raise error.Abort(_("%s not under root '%s'") % (myname, root), |
193 hint=hint) | 195 hint=hint) |