Skip to content
Snippets Groups Projects
Commit 5774732b authored by Bryan O'Sullivan's avatar Bryan O'Sullivan
Browse files

merge: apply non-interactive working dir updates in parallel

This has a big effect on the performance of working dir updates.

Here are the results of update from null to the given rev in several
repos, on a Linux 3.2 system with 32 cores running ext4, with the progress
extension enabled.

repo             rev           plain  parallel   speedup
hg               7068089c95a2    0.9       0.3       3
mozilla-central  fe1600b22c77   42.8       7.7       5.5
linux-2.6        9ef4b770e069   31.4       4.9       6.4
parent 047110c0
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@
from node import nullid, nullrev, hex, bin
from i18n import _
import error, util, filemerge, copies, subrepo
import error, util, filemerge, copies, subrepo, worker
import errno, os, shutil
class mergestate(object):
......@@ -432,7 +432,9 @@
subrepo.submerge(repo, wctx, mctx, wctx, overwrite)
z = 0
for i, item in getremove(repo, mctx, overwrite, workeractions):
prog = worker.worker(repo.ui, 0.001, getremove, (repo, mctx, overwrite),
workeractions)
for i, item in prog:
z += i
repo.ui.progress(_('updating'), z, item=item, total=numupdates,
unit=_('files'))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment