util.rename: do not abort if os.unlink fails (
issue1840)
--- a/mercurial/util.py Mon Oct 05 22:01:08 2009 +0200
+++ b/mercurial/util.py Tue Oct 06 10:45:23 2009 +0200
@@ -444,7 +444,14 @@
temp = tempname(dst)
os.rename(dst, temp)
- os.unlink(temp)
+ try:
+ os.unlink(temp)
+ except:
+ # Some rude AV-scanners on Windows may cause the unlink to
+ # fail. Not aborting here just leaks the temp file, whereas
+ # aborting at this point may leave serious inconsistencies.
+ # Ideally, we would notify the user here.
+ pass
os.rename(src, dst)
def unlink(f):