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)