merge with crew-stable
authorThomas Arendsen Hein <thomas@intevation.de>
Thu, 25 Oct 2007 21:37:20 +0200
changeset 5492 dd5ca84ed868
parent 5491 f00ed7c5877b (current diff)
parent 5477 bff41174563f (diff)
child 5493 04f033a03b1d
merge with crew-stable
--- a/mercurial/patch.py	Thu Oct 25 00:09:13 2007 +0200
+++ b/mercurial/patch.py	Thu Oct 25 21:37:20 2007 +0200
@@ -9,7 +9,7 @@
 from i18n import _
 from node import *
 import base85, cmdutil, mdiff, util, context, revlog, diffhelpers
-import cStringIO, email.Parser, os, popen2, re, sha
+import cStringIO, email.Parser, os, popen2, re, sha, errno
 import sys, tempfile, zlib
 
 class PatchError(Exception):
@@ -402,11 +402,13 @@
             st = None
             try:
                 st = os.lstat(dest)
-                if st.st_nlink > 1:
-                    os.unlink(dest)
-            except: pass
+            except OSError, inst:
+                if inst.errno != errno.ENOENT:
+                    raise
+            if st and st.st_nlink > 1:
+                os.unlink(dest)
             fp = file(dest, 'wb')
-            if st:
+            if st and st.st_nlink > 1:
                 os.chmod(dest, st.st_mode)
             fp.writelines(self.lines)
             fp.close()