--- a/mercurial/patch.py Mon Nov 20 19:32:45 2006 -0200
+++ b/mercurial/patch.py Mon Nov 20 19:32:46 2006 -0200
@@ -547,6 +547,7 @@
all = modified + added + removed
all.sort()
+ gone = {}
for f in all:
to = None
tn = None
@@ -574,7 +575,11 @@
a, arev = copied[f]
omode = gitmode(mmap.execf(a))
addmodehdr(header, omode, mode)
- op = a in removed and 'rename' or 'copy'
+ if a in removed and a not in gone:
+ op = 'rename'
+ gone[a] = 1
+ else:
+ op = 'copy'
header.append('%s from %s\n' % (op, a))
header.append('%s to %s\n' % (op, f))
to = getfile(a).read(arev)