# HG changeset patch # User Boris Feld # Date 2018-07-14 00:09:47 # Node ID 2cdb82e8fb44346cdf8e9a27377a64642d0b212f # Parent 55101513ed9498d9e57595b933254a149e9390da perffncachewrite: load fncache after lock is acquired Without this patch, running perffncachewrite on a repository destroy its fncache. Lock Acquisition drops various caches, including the fncache one. Then writing of an non-loaded fncache result into an empty one. diff --git a/contrib/perf.py b/contrib/perf.py --- a/contrib/perf.py +++ b/contrib/perf.py @@ -980,9 +980,10 @@ def perffncacheload(ui, repo, **opts): def perffncachewrite(ui, repo, **opts): timer, fm = gettimer(ui, opts) s = repo.store + lock = repo.lock() s.fncache._load() - lock = repo.lock() tr = repo.transaction('perffncachewrite') + tr.addbackup('fncache') def d(): s.fncache._dirty = True s.fncache.write(tr) diff --git a/tests/test-contrib-perf.t b/tests/test-contrib-perf.t --- a/tests/test-contrib-perf.t +++ b/tests/test-contrib-perf.t @@ -146,7 +146,11 @@ perfstatus #if repofncache $ hg perffncacheencode $ hg perffncacheload + $ hg debugrebuildfncache + fncache already up to date $ hg perffncachewrite + $ hg debugrebuildfncache + fncache already up to date #endif $ hg perfheads $ hg perfindex