--- a/mercurial/revlog.py Thu Aug 08 01:25:37 2019 +0200
+++ b/mercurial/revlog.py Thu Aug 08 01:59:43 2019 +0200
@@ -125,33 +125,6 @@
ellipsisrawprocessor,
)
-def addflagprocessor(flag, processor):
- """Register a flag processor on a revision data flag.
-
- Invariant:
- - Flags need to be defined in REVIDX_KNOWN_FLAGS and REVIDX_FLAGS_ORDER,
- and REVIDX_RAWTEXT_CHANGING_FLAGS if they can alter rawtext.
- - Only one flag processor can be registered on a specific flag.
- - flagprocessors must be 3-tuples of functions (read, write, raw) with the
- following signatures:
- - (read) f(self, rawtext) -> text, bool
- - (write) f(self, text) -> rawtext, bool
- - (raw) f(self, rawtext) -> bool
- "text" is presented to the user. "rawtext" is stored in revlog data, not
- directly visible to the user.
- The boolean returned by these transforms is used to determine whether
- the returned text can be used for hash integrity checking. For example,
- if "write" returns False, then "text" is used to generate hash. If
- "write" returns True, that basically means "rawtext" returned by "write"
- should be used to generate hash. Usually, "write" and "read" return
- different booleans. And "raw" returns a same boolean as "write".
-
- Note: The 'raw' transform is used for changegroup generation and in some
- debug commands. In this case the transform only indicates whether the
- contents can be used for hash integrity checks.
- """
- flagutil.insertflagprocessor(flag, processor, flagutil.flagprocessors)
-
def getoffset(q):
return int(q >> 16)
@@ -2609,7 +2582,7 @@
#
# L1 should be equal to L2. L3 could be different from them.
# "text" may or may not affect commit hash depending on flag
- # processors (see revlog.addflagprocessor).
+ # processors (see flagutil.addflagprocessor).
#
# | common | rename | meta | ext
# -------------------------------------------------
--- a/mercurial/revlogutils/flagutil.py Thu Aug 08 01:25:37 2019 +0200
+++ b/mercurial/revlogutils/flagutil.py Thu Aug 08 01:59:43 2019 +0200
@@ -40,6 +40,33 @@
REVIDX_ISCENSORED: None,
}
+def addflagprocessor(flag, processor):
+ """Register a flag processor on a revision data flag.
+
+ Invariant:
+ - Flags need to be defined in REVIDX_KNOWN_FLAGS and REVIDX_FLAGS_ORDER,
+ and REVIDX_RAWTEXT_CHANGING_FLAGS if they can alter rawtext.
+ - Only one flag processor can be registered on a specific flag.
+ - flagprocessors must be 3-tuples of functions (read, write, raw) with the
+ following signatures:
+ - (read) f(self, rawtext) -> text, bool
+ - (write) f(self, text) -> rawtext, bool
+ - (raw) f(self, rawtext) -> bool
+ "text" is presented to the user. "rawtext" is stored in revlog data, not
+ directly visible to the user.
+ The boolean returned by these transforms is used to determine whether
+ the returned text can be used for hash integrity checking. For example,
+ if "write" returns False, then "text" is used to generate hash. If
+ "write" returns True, that basically means "rawtext" returned by "write"
+ should be used to generate hash. Usually, "write" and "read" return
+ different booleans. And "raw" returns a same boolean as "write".
+
+ Note: The 'raw' transform is used for changegroup generation and in some
+ debug commands. In this case the transform only indicates whether the
+ contents can be used for hash integrity checks.
+ """
+ insertflagprocessor(flag, processor, flagprocessors)
+
def insertflagprocessor(flag, processor, flagprocessors):
if not flag & REVIDX_KNOWN_FLAGS:
msg = _("cannot register processor on unknown flag '%#x'.") % (flag)
--- a/tests/flagprocessorext.py Thu Aug 08 01:25:37 2019 +0200
+++ b/tests/flagprocessorext.py Thu Aug 08 01:59:43 2019 +0200
@@ -113,7 +113,7 @@
exchange._bundlespeccontentopts[k][b"cg.version"] = b"03"
# Register flag processors for each extension
- revlog.addflagprocessor(
+ flagutil.addflagprocessor(
REVIDX_NOOP,
(
noopdonothing,
@@ -121,7 +121,7 @@
validatehash,
)
)
- revlog.addflagprocessor(
+ flagutil.addflagprocessor(
REVIDX_BASE64,
(
b64decode,
@@ -129,7 +129,7 @@
bypass,
),
)
- revlog.addflagprocessor(
+ flagutil.addflagprocessor(
REVIDX_GZIP,
(
gzipdecompress,
--- a/tests/test-flagprocessor.t Thu Aug 08 01:25:37 2019 +0200
+++ b/tests/test-flagprocessor.t Thu Aug 08 01:59:43 2019 +0200
@@ -205,8 +205,8 @@
extsetup(ui)
File "*/tests/flagprocessorext.py", line *, in extsetup (glob)
validatehash,
- File "*/mercurial/revlog.py", line *, in addflagprocessor (glob)
- flagutil.insertflagprocessor(flag, processor, flagutil.flagprocessors)
+ File "*/mercurial/revlogutils/flagutil.py", line *, in addflagprocessor (glob)
+ insertflagprocessor(flag, processor, flagprocessors)
File "*/mercurial/revlogutils/flagutil.py", line *, in insertflagprocessor (glob)
raise error.Abort(msg)
mercurial.error.Abort: b"cannot register multiple processors on flag '0x8'." (py3 !)
--- a/tests/test-revlog-raw.py Thu Aug 08 01:25:37 2019 +0200
+++ b/tests/test-revlog-raw.py Thu Aug 08 01:59:43 2019 +0200
@@ -16,6 +16,7 @@
from mercurial.revlogutils import (
deltas,
+ flagutil,
)
# TESTTMP is optional. This makes it convenient to run without run-tests.py
@@ -56,7 +57,7 @@
# can be used to verify hash.
return False
-revlog.addflagprocessor(revlog.REVIDX_EXTSTORED,
+flagutil.addflagprocessor(revlog.REVIDX_EXTSTORED,
(readprocessor, writeprocessor, rawprocessor))
# Utilities about reading and appending revlog