Show More
@@ -1122,8 +1122,9 b' def iterhunks(fp):' | |||||
1122 | or (context is not False and x.startswith('***************')) |
|
1122 | or (context is not False and x.startswith('***************')) | |
1123 | or x.startswith('GIT binary patch')): |
|
1123 | or x.startswith('GIT binary patch')): | |
1124 | gp = None |
|
1124 | gp = None | |
1125 |
if gitpatches and |
|
1125 | if (gitpatches and | |
1126 | gp = gitpatches.pop()[1] |
|
1126 | (gitpatches[-1][0] == afile or gitpatches[-1][1] == bfile)): | |
|
1127 | gp = gitpatches.pop()[2] | |||
1127 | if x.startswith('GIT binary patch'): |
|
1128 | if x.startswith('GIT binary patch'): | |
1128 | h = binhunk(lr) |
|
1129 | h = binhunk(lr) | |
1129 | else: |
|
1130 | else: | |
@@ -1141,17 +1142,17 b' def iterhunks(fp):' | |||||
1141 | continue |
|
1142 | continue | |
1142 | if gitpatches is None: |
|
1143 | if gitpatches is None: | |
1143 | # scan whole input for git metadata |
|
1144 | # scan whole input for git metadata | |
1144 | gitpatches = [('b/' + gp.path, gp) for gp |
|
1145 | gitpatches = [('a/' + gp.path, 'b/' + gp.path, gp) for gp | |
1145 | in scangitpatch(lr, x)] |
|
1146 | in scangitpatch(lr, x)] | |
1146 |
yield 'git', [g[ |
|
1147 | yield 'git', [g[2] for g in gitpatches | |
1147 |
if g[ |
|
1148 | if g[2].op in ('COPY', 'RENAME')] | |
1148 | gitpatches.reverse() |
|
1149 | gitpatches.reverse() | |
1149 | afile = 'a/' + m.group(1) |
|
1150 | afile = 'a/' + m.group(1) | |
1150 | bfile = 'b/' + m.group(2) |
|
1151 | bfile = 'b/' + m.group(2) | |
1151 |
while bfile != gitpatches[-1][ |
|
1152 | while afile != gitpatches[-1][0] and bfile != gitpatches[-1][1]: | |
1152 |
gp = gitpatches.pop()[ |
|
1153 | gp = gitpatches.pop()[2] | |
1153 | yield 'file', ('a/' + gp.path, 'b/' + gp.path, None, gp) |
|
1154 | yield 'file', ('a/' + gp.path, 'b/' + gp.path, None, gp) | |
1154 |
gp = gitpatches[-1][ |
|
1155 | gp = gitpatches[-1][2] | |
1155 | # copy/rename + modify should modify target, not source |
|
1156 | # copy/rename + modify should modify target, not source | |
1156 | if gp.op in ('COPY', 'DELETE', 'RENAME', 'ADD') or gp.mode: |
|
1157 | if gp.op in ('COPY', 'DELETE', 'RENAME', 'ADD') or gp.mode: | |
1157 | afile = bfile |
|
1158 | afile = bfile | |
@@ -1189,7 +1190,7 b' def iterhunks(fp):' | |||||
1189 | hunknum = 0 |
|
1190 | hunknum = 0 | |
1190 |
|
1191 | |||
1191 | while gitpatches: |
|
1192 | while gitpatches: | |
1192 |
gp = gitpatches.pop()[ |
|
1193 | gp = gitpatches.pop()[2] | |
1193 | yield 'file', ('a/' + gp.path, 'b/' + gp.path, None, gp) |
|
1194 | yield 'file', ('a/' + gp.path, 'b/' + gp.path, None, gp) | |
1194 |
|
1195 | |||
1195 | def applydiff(ui, fp, changed, backend, store, strip=1, eolmode='strict'): |
|
1196 | def applydiff(ui, fp, changed, backend, store, strip=1, eolmode='strict'): |
General Comments 0
You need to be logged in to leave comments.
Login now