share: handle --relative shares to a different drive letter gracefully stable
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 02 Nov 2017 23:55:09 -0400
branchstable
changeset 34957 b64ea7fb9599
parent 34956 f445b10dc7fb
child 34958 705d0f2bb677
share: handle --relative shares to a different drive letter gracefully This had the same problem as f445b10dc7fb. Banning os.path.relpath() is tempting, but the hint it provides is useful here.
mercurial/hg.py
--- a/mercurial/hg.py	Thu Nov 02 20:35:31 2017 -0400
+++ b/mercurial/hg.py	Thu Nov 02 23:55:09 2017 -0400
@@ -243,7 +243,9 @@
         try:
             sharedpath = os.path.relpath(sharedpath, destvfs.base)
             requirements += 'relshared\n'
-        except IOError as e:
+        except (IOError, ValueError) as e:
+            # ValueError is raised on Windows if the drive letters differ on
+            # each path
             raise error.Abort(_('cannot calculate relative path'),
                               hint=str(e))
     else: