equal
deleted
inserted
replaced
169 for mf in match[of]: |
169 for mf in match[of]: |
170 checkpair(c, mf, m1) |
170 checkpair(c, mf, m1) |
171 |
171 |
172 return copy |
172 return copy |
173 |
173 |
174 def manifestmerge(ui, m1, m2, ma, overwrite, backwards, partial): |
174 def filtermanifest(man, partial): |
|
175 if partial: |
|
176 for k in man.keys(): |
|
177 if not partial(k): del man[k] |
|
178 |
|
179 def manifestmerge(ui, m1, m2, ma, overwrite, backwards): |
175 """ |
180 """ |
176 Merge manifest m1 with m2 using ancestor ma and generate merge action list |
181 Merge manifest m1 with m2 using ancestor ma and generate merge action list |
177 """ |
182 """ |
178 |
183 |
179 def fmerge(f): |
184 def fmerge(f): |
184 action = [] |
189 action = [] |
185 |
190 |
186 def act(msg, f, m, *args): |
191 def act(msg, f, m, *args): |
187 ui.debug(" %s: %s -> %s\n" % (f, msg, m)) |
192 ui.debug(" %s: %s -> %s\n" % (f, msg, m)) |
188 action.append((f, m) + args) |
193 action.append((f, m) + args) |
189 |
|
190 # Filter manifests |
|
191 if partial: |
|
192 for f in m1.keys(): |
|
193 if not partial(f): del m1[f] |
|
194 for f in m2.keys(): |
|
195 if not partial(f): del m2[f] |
|
196 |
194 |
197 # Compare manifests |
195 # Compare manifests |
198 for f, n in m1.iteritems(): |
196 for f, n in m1.iteritems(): |
199 if f in m2: |
197 if f in m2: |
200 # are files different? |
198 # are files different? |
361 |
359 |
362 action = [] |
360 action = [] |
363 copy = {} |
361 copy = {} |
364 |
362 |
365 m1 = workingmanifest(repo, m1, status) |
363 m1 = workingmanifest(repo, m1, status) |
|
364 filtermanifest(m1, partial) |
|
365 filtermanifest(m2, partial) |
366 |
366 |
367 if not force: |
367 if not force: |
368 checkunknown(repo, m2, status) |
368 checkunknown(repo, m2, status) |
369 if not branchmerge: |
369 if not branchmerge: |
370 action += forgetremoved(m2, status) |
370 action += forgetremoved(m2, status) |
371 if not (backwards or overwrite): |
371 if not (backwards or overwrite): |
372 copy = findcopies(repo, m1, m2, repo.changelog.rev(pa)) |
372 copy = findcopies(repo, m1, m2, repo.changelog.rev(pa)) |
373 |
373 |
374 action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards, partial) |
374 action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards) |
375 del m1, m2, ma |
375 del m1, m2, ma |
376 |
376 |
377 ### apply phase |
377 ### apply phase |
378 |
378 |
379 if not branchmerge: |
379 if not branchmerge: |