1383 i = 0 |
1383 i = 0 |
1384 i += 1 |
1384 i += 1 |
1385 if i > 0: |
1385 if i > 0: |
1386 yield i, f |
1386 yield i, f |
1387 |
1387 |
|
1388 def _prefetchfiles(repo, ctx, actions): |
|
1389 """Invoke ``scmutil.fileprefetchhooks()`` for the files relevant to the dict |
|
1390 of merge actions. ``ctx`` is the context being merged in.""" |
|
1391 |
|
1392 # Skipping 'a', 'am', 'f', 'r', 'dm', 'e', 'k', 'p' and 'pr', because they |
|
1393 # don't touch the context to be merged in. 'cd' is skipped, because |
|
1394 # changed/deleted never resolves to something from the remote side. |
|
1395 oplist = [actions[a] for a in 'g dc dg m'.split()] |
|
1396 prefetch = scmutil.fileprefetchhooks |
|
1397 prefetch(repo, ctx, [f for sublist in oplist for f, args, msg in sublist]) |
1388 |
1398 |
1389 def applyupdates(repo, actions, wctx, mctx, overwrite, labels=None): |
1399 def applyupdates(repo, actions, wctx, mctx, overwrite, labels=None): |
1390 """apply the merge action list to the working directory |
1400 """apply the merge action list to the working directory |
1391 |
1401 |
1392 wctx is the working copy context |
1402 wctx is the working copy context |
1393 mctx is the context to be merged into the working copy |
1403 mctx is the context to be merged into the working copy |
1394 |
1404 |
1395 Return a tuple of counts (updated, merged, removed, unresolved) that |
1405 Return a tuple of counts (updated, merged, removed, unresolved) that |
1396 describes how many files were affected by the update. |
1406 describes how many files were affected by the update. |
1397 """ |
1407 """ |
|
1408 |
|
1409 _prefetchfiles(repo, mctx, actions) |
1398 |
1410 |
1399 updated, merged, removed = 0, 0, 0 |
1411 updated, merged, removed = 0, 0, 0 |
1400 ms = mergestate.clean(repo, wctx.p1().node(), mctx.node(), labels) |
1412 ms = mergestate.clean(repo, wctx.p1().node(), mctx.node(), labels) |
1401 moves = [] |
1413 moves = [] |
1402 for m, l in actions.items(): |
1414 for m, l in actions.items(): |