Browse Source

Add special-casing for Windows, as WindowsError isn't available on other platforms.

Jelmer Vernooij 8 years ago
parent
commit
5b1ae8ce42
1 changed files with 7 additions and 4 deletions
  1. 7 4
      dulwich/object_store.py

+ 7 - 4
dulwich/object_store.py

@@ -567,10 +567,13 @@ class DiskObjectStore(PackBasedObjectStore):
         # Move the pack in.
         entries.sort()
         pack_base_name = self._get_pack_basepath(entries)
-        try:
-            os.rename(path, pack_base_name + '.pack')
-        except WindowsError:
-            os.remove(pack_base_name + '.pack')
+        if sys.platform == 'win32':
+            try:
+                os.rename(path, pack_base_name + '.pack')
+            except WindowsError:
+                os.remove(pack_base_name + '.pack')
+                os.rename(path, pack_base_name + '.pack')
+        else:
             os.rename(path, pack_base_name + '.pack')
 
         # Write the index.