# HG changeset patch # User Thomas Arendsen Hein # Date 1193341040 -7200 # Node ID dd5ca84ed8688f43bddba0e8eb10f5fe07a038c5 # Parent f00ed7c5877bca51e045c0e56ac7ce5dc8630771# Parent bff41174563ff7bd98889d4937af75e8fd0bfa69 merge with crew-stable diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -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 @@ class patchfile: 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()