windows.rename: check OSError for EEXIST
For example, if src has been opened with Python's open(), os.rename will
raise EACCES. Continuing in that case is pointless.
--- a/mercurial/windows.py Fri Jan 07 10:48:30 2011 +0100
+++ b/mercurial/windows.py Tue Jan 11 14:10:16 2011 +0100
@@ -289,7 +289,9 @@
'''atomically rename file src to dst, replacing dst if it exists'''
try:
os.rename(src, dst)
- except OSError: # FIXME: check err (EEXIST ?)
+ except OSError, e:
+ if e.errno != errno.EEXIST:
+ raise
# On windows, rename to existing file is not allowed, so we
# must delete destination first. But if a file is open, unlink