diff --git a/mercurial/configitems.py b/mercurial/configitems.py index ef3838a47503d125a45bd1dfb675f36ead62cb05_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5..be4984261611ef1165764f3f2607fd1da29fc23f_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5 100644 --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -623,6 +623,9 @@ coreconfigitem('experimental', 'web.api.debugreflect', default=False, ) +coreconfigitem('experimental', 'worker.wdir-get-thread-safe', + default=False, +) coreconfigitem('experimental', 'xdiff', default=False, ) diff --git a/mercurial/merge.py b/mercurial/merge.py index ef3838a47503d125a45bd1dfb675f36ead62cb05_bWVyY3VyaWFsL21lcmdlLnB5..be4984261611ef1165764f3f2607fd1da29fc23f_bWVyY3VyaWFsL21lcmdlLnB5 100644 --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -1637,5 +1637,7 @@ wctx[f0].remove() progress.increment(item=f) - # get in parallel + # get in parallel. + threadsafe = repo.ui.configbool('experimental', + 'worker.wdir-get-thread-safe') prog = worker.worker(repo.ui, cost, batchget, (repo, mctx, wctx), @@ -1641,5 +1643,6 @@ prog = worker.worker(repo.ui, cost, batchget, (repo, mctx, wctx), - actions[ACTION_GET]) + actions[ACTION_GET], + threadsafe=threadsafe) for i, item in prog: progress.increment(step=i, item=item) updated = len(actions[ACTION_GET])