Mercurial > hg
changeset 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 | 95f54cec0025 |
children | 19ecd39223dc b64ea7fb9599 80d7dbda9294 |
files | mercurial/pathutil.py |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/pathutil.py Wed Nov 01 16:54:39 2017 -0500 +++ b/mercurial/pathutil.py Thu Nov 02 20:35:31 2017 -0400 @@ -184,8 +184,10 @@ try: if cwd != root: canonpath(root, root, myname, auditor) - hint = (_("consider using '--cwd %s'") - % os.path.relpath(root, cwd)) + relpath = util.pathto(root, cwd, '') + if relpath[-1] == pycompat.ossep: + relpath = relpath[:-1] + hint = (_("consider using '--cwd %s'") % relpath) except error.Abort: pass