--- a/tests/flagprocessorext.py Wed Apr 04 17:40:09 2018 -0700
+++ b/tests/flagprocessorext.py Wed Apr 04 19:17:22 2018 -0700
@@ -9,7 +9,6 @@
changegroup,
exchange,
extensions,
- filelog,
revlog,
util,
)
@@ -55,39 +54,41 @@
versions.add(b'03')
return versions
-def noopaddrevision(orig, self, text, transaction, link, p1, p2,
- cachedelta=None, node=None,
- flags=revlog.REVIDX_DEFAULT_FLAGS):
- if b'[NOOP]' in text:
- flags |= REVIDX_NOOP
- return orig(self, text, transaction, link, p1, p2, cachedelta=cachedelta,
- node=node, flags=flags)
+def makewrappedfile(obj):
+ class wrappedfile(obj.__class__):
+ def addrevision(self, text, transaction, link, p1, p2,
+ cachedelta=None, node=None,
+ flags=revlog.REVIDX_DEFAULT_FLAGS):
+ if b'[NOOP]' in text:
+ flags |= REVIDX_NOOP
-def b64addrevision(orig, self, text, transaction, link, p1, p2,
- cachedelta=None, node=None,
- flags=revlog.REVIDX_DEFAULT_FLAGS):
- if b'[BASE64]' in text:
- flags |= REVIDX_BASE64
- return orig(self, text, transaction, link, p1, p2, cachedelta=cachedelta,
- node=node, flags=flags)
+ if b'[BASE64]' in text:
+ flags |= REVIDX_BASE64
+
+ if b'[GZIP]' in text:
+ flags |= REVIDX_GZIP
-def gzipaddrevision(orig, self, text, transaction, link, p1, p2,
- cachedelta=None, node=None,
- flags=revlog.REVIDX_DEFAULT_FLAGS):
- if b'[GZIP]' in text:
- flags |= REVIDX_GZIP
- return orig(self, text, transaction, link, p1, p2, cachedelta=cachedelta,
- node=node, flags=flags)
+ # This addrevision wrapper is meant to add a flag we will not have
+ # transforms registered for, ensuring we handle this error case.
+ if b'[FAIL]' in text:
+ flags |= REVIDX_FAIL
+
+ return super(wrappedfile, self).addrevision(text, transaction, link,
+ p1, p2,
+ cachedelta=cachedelta,
+ node=node,
+ flags=flags)
-def failaddrevision(orig, self, text, transaction, link, p1, p2,
- cachedelta=None, node=None,
- flags=revlog.REVIDX_DEFAULT_FLAGS):
- # This addrevision wrapper is meant to add a flag we will not have
- # transforms registered for, ensuring we handle this error case.
- if b'[FAIL]' in text:
- flags |= REVIDX_FAIL
- return orig(self, text, transaction, link, p1, p2, cachedelta=cachedelta,
- node=node, flags=flags)
+ obj.__class__ = wrappedfile
+
+def reposetup(ui, repo):
+ class wrappingflagprocessorrepo(repo.__class__):
+ def file(self, f):
+ orig = super(wrappingflagprocessorrepo, self).file(f)
+ makewrappedfile(orig)
+ return orig
+
+ repo.__class__ = wrappingflagprocessorrepo
def extsetup(ui):
# Enable changegroup3 for flags to be sent over the wire
@@ -108,13 +109,6 @@
for k in exchange._bundlespeccontentopts.keys():
exchange._bundlespeccontentopts[k]["cg.version"] = "03"
- # Add wrappers for addrevision, responsible to set flags depending on the
- # revision data contents.
- wrapfunction(filelog.filelog, 'addrevision', noopaddrevision)
- wrapfunction(filelog.filelog, 'addrevision', b64addrevision)
- wrapfunction(filelog.filelog, 'addrevision', gzipaddrevision)
- wrapfunction(filelog.filelog, 'addrevision', failaddrevision)
-
# Register flag processors for each extension
revlog.addflagprocessor(
REVIDX_NOOP,