Mercurial > hg-stable
changeset 23510:065c0334846f
fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Now that we have a shiny generic mechanism, we can use it.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 04 Dec 2014 13:49:45 -0800 |
parents | 32e68271a037 |
children | acc73273b27e |
files | mercurial/localrepo.py tests/test-fncache.t |
diffstat | 2 files changed, 9 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Tue Dec 09 13:32:19 2014 -0600 +++ b/mercurial/localrepo.py Thu Dec 04 13:49:45 2014 -0800 @@ -883,9 +883,6 @@ _("abandoned transaction found"), hint=_("run 'hg recover' to clean up transaction")) - def onclose(): - self.store.write(self._transref()) - self._writejournal(desc) renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()] rp = report and report or self.ui.warn @@ -893,8 +890,8 @@ tr = transaction.transaction(rp, self.sopener, vfsmap, "journal", aftertrans(renames), - self.store.createmode, - onclose) + self.store.createmode) + tr.addfinalize('repo.store.write', self.store.write) self._transref = weakref.ref(tr) return tr
--- a/tests/test-fncache.t Tue Dec 09 13:32:19 2014 -0600 +++ b/tests/test-fncache.t Thu Dec 04 13:49:45 2014 -0800 @@ -210,19 +210,19 @@ $ cat > ../exceptionext.py <<EOF > import os - > from mercurial import commands, util, transaction + > from mercurial import commands, util, localrepo > from mercurial.extensions import wrapfunction > > def wrapper(orig, self, *args, **kwargs): - > origonclose = self.onclose - > def onclose(): - > origonclose() + > tr = orig(self, *args, **kwargs) + > def fail(tr): > raise util.Abort("forced transaction failure") - > self.onclose = onclose - > return orig(self, *args, **kwargs) + > # zzz prefix to ensure it sorted after store.write + > tr.addfinalize('zzz-forcefails', fail) + > return tr > > def uisetup(ui): - > wrapfunction(transaction.transaction, 'close', wrapper) + > wrapfunction(localrepo.localrepository, 'transaction', wrapper) > > cmdtable = {} >