patch: explicitely close input patch files when leaving
If applydiff() raises an exception, the opened patch file is kept alive in the
exception context. If it is a temporary file (for instance supplied by import
command with stdin input), Windows cannot clean it up.
--- a/mercurial/patch.py Sun Jan 03 17:26:39 2010 +0100
+++ b/mercurial/patch.py Sun Jan 03 19:47:07 2010 +0100
@@ -1126,6 +1126,8 @@
finally:
if cwd:
os.chdir(curdir)
+ if fp != patchobj:
+ fp.close()
if ret < 0:
raise PatchError
return ret > 0