Mercurial > public > mercurial-scm > hg-stable
diff mercurial/localrepo.py @ 13391:d00bbff8600e
fncachestore: defer updating the fncache file to a single file open
Defers updating the fncache file with newly added entries to the end of
the transaction (on e.g. pull), doing a single open call on the fncache
file, instead of opening and closing it each time a new entry is added
to the store.
Implemented by adding a new abstract write() function on store.basicstore
and registering it as a release function on the store lock in
localrepo.lock (compare with dirstate.write).
store.fncachestore overrides write() from basicstore and calls a new
write function on the fncache object, which writes all entries to the
fncache file if it's dirty.
store.fncache.add() now just marks itself as dirty if a new name is added.
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Fri, 28 Jan 2011 13:38:34 +0100 |
parents | 327719a44b6a |
children | 14f3795a5ed7 |
line wrap: on
line diff
--- a/mercurial/localrepo.py Fri Jan 28 13:34:07 2011 +0100 +++ b/mercurial/localrepo.py Fri Jan 28 13:38:34 2011 +0100 @@ -781,8 +781,8 @@ l.lock() return l - l = self._lock(self.sjoin("lock"), wait, None, self.invalidate, - _('repository %s') % self.origroot) + l = self._lock(self.sjoin("lock"), wait, self.store.write, + self.invalidate, _('repository %s') % self.origroot) self._lockref = weakref.ref(l) return l