[PATCH STABLE] pathutil: use util.pathto() to calculate relative cwd in canonpath()
Matt Harbison
mharbison72 at gmail.com
Fri Nov 3 01:16:32 UTC 2017
# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1509669331 14400
# Thu Nov 02 20:35:31 2017 -0400
# Branch stable
# Node ID 7d799a9800793cb5f1c10ce7269c31e1c7b1285a
# Parent 95f54cec00258ffa4caa8df38e4ecb265aa7a0a3
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:
diff --git a/mercurial/pathutil.py b/mercurial/pathutil.py
--- a/mercurial/pathutil.py
+++ b/mercurial/pathutil.py
@@ -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
More information about the Mercurial-devel
mailing list