[PATCH evolve-ext-V2] inhibit: move transaction wrapping outside of repo setup
Laurent Charignon
lcharignon at fb.com
Tue Jun 16 18:17:02 UTC 2015
# HG changeset patch
# User Laurent Charignon <lcharignon at fb.com>
# Date 1434474471 25200
# Tue Jun 16 10:07:51 2015 -0700
# Node ID c203f07c665e960f348b7b4f0a947565f15a8c22
# Parent 5c13945b32fc4bcb4998a1bdd0b669ac43c26574
inhibit: move transaction wrapping outside of repo setup
Before this patch, transaction wrapping code was done in reposetup. It happened
to cause stackoverflows in repos with a lot of subreps.
This patch moves the wrapping to extsetup and avoids this problem.
diff --git a/hgext/inhibit.py b/hgext/inhibit.py
--- a/hgext/inhibit.py
+++ b/hgext/inhibit.py
@@ -48,9 +48,6 @@ def reposetup(ui, repo):
return newnode
repo.__class__ = obsinhibitedrepo
- # Wrapping this to inhibit obsolete revs resulting from a transaction
- extensions.wrapfunction(localrepo.localrepository,
- 'transaction', transactioncallback)
def _update(orig, ui, repo, *args, **kwargs):
"""
@@ -199,6 +196,11 @@ def extsetup(ui):
except KeyError:
errormsg = _('Cannot use inhibit without the direct access extension')
raise error.Abort(errormsg)
+
+ # Wrapping this to inhibit obsolete revs resulting from a transaction
+ extensions.wrapfunction(localrepo.localrepository,
+ 'transaction', transactioncallback)
+
obsolete.cachefuncs['obsolete'] = _computeobsoleteset
# wrap create marker to make it able to lift the inhibition
extensions.wrapfunction(obsolete, 'createmarkers', _createmarkers)
More information about the Mercurial-devel
mailing list