Browse Source

Use os.replace if available.

Jelmer Vernooij 6 năm trước cách đây
mục cha
commit
83a39fd6f7
1 tập tin đã thay đổi với 6 bổ sung6 xóa
  1. 6 6
      dulwich/file.py

+ 6 - 6
dulwich/file.py

@@ -170,15 +170,15 @@ class _GitFile(object):
         os.fsync(self._file.fileno())
         self._file.close()
         try:
-            try:
-                os.rename(self._lockfilename, self._filename)
-            except OSError as e:
-                if sys.platform == 'win32' and e.errno == errno.EEXIST:
+            if getattr(os, 'replace', None) is not None:
+                os.replace(self._lockfilename, self._filename)
+            else:
+                if sys.platform != 'win32':
+                     os.rename(self._lockfilename, self._filename)
+                else:
                     # Windows versions prior to Vista don't support atomic
                     # renames
                     _fancy_rename(self._lockfilename, self._filename)
-                else:
-                    raise
         finally:
             self.abort()