[PATCH STABLE] share: handle --relative shares to a different drive letter gracefully

Matt Harbison mharbison72 at gmail.com
Fri Nov 3 23:32:46 EDT 2017


# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1509681309 14400
#      Thu Nov 02 23:55:09 2017 -0400
# Branch stable
# Node ID 1683556589d30268414b8f17c67919278aa997c7
# Parent  f445b10dc7fb3495d24d1c22b0996148864c77f7
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.

diff --git a/mercurial/hg.py b/mercurial/hg.py
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -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:


More information about the Mercurial-devel mailing list