[Bf-extensions-cvs] [2155eb5] master: Fix T48187: Packing files on MS-Windows fails

Campbell Barton noreply at git.blender.org
Tue Jul 19 19:51:45 CEST 2016


Commit: 2155eb58531f97fef7f5e60b612d6436d083ebff
Author: Campbell Barton
Date:   Wed Jul 20 03:52:59 2016 +1000
Branches: master
https://developer.blender.org/rBA2155eb58531f97fef7f5e60b612d6436d083ebff

Fix T48187: Packing files on MS-Windows fails

Using paths on different drives caused packing to fail
since its not possible to make one path relative to another.

===================================================================

M	io_blend_utils/blendfile_pack.py

===================================================================

diff --git a/io_blend_utils/blendfile_pack.py b/io_blend_utils/blendfile_pack.py
index 225a941..dee2bfa 100755
--- a/io_blend_utils/blendfile_pack.py
+++ b/io_blend_utils/blendfile_pack.py
@@ -55,7 +55,18 @@ def _relpath_remap(
                 raise Exception("Internal error 'path_src' -> %r must be absolute" % path_src)
 
     path_src = os.path.normpath(path_src)
-    path_dst = os.path.relpath(path_src, base_dir_src)
+    if os.name != "nt":
+        path_dst = os.path.relpath(path_src, base_dir_src)
+    else:
+        # exception for windows, we need to support mapping between drives
+        try:
+            path_dst = os.path.relpath(path_src, base_dir_src)
+        except ValueError:
+            # include the absolute path when the file is on a different drive.
+            path_dst = os.path.relpath(
+                    os.path.join(base_dir_src, b'__' + path_src.replace(b':', b'\\')),
+                    base_dir_src,
+                    )
 
     if blendfile_src_dir_fakeroot is None:
         # /foo/../bar.png --> /foo/__/bar.png



More information about the Bf-extensions-cvs mailing list