Patchwork [2,of,3] flagprocessor: migrate addflagprocessor to registerflagprocessor

login
register
mail settings
Submitter Jun Wu
Date May 11, 2017, 1:47 a.m.
Message ID <a5a22d616f981e8c220f.1494467254@x1c>
Download mbox | patch
Permalink /patch/20564/
State Superseded
Headers show

Comments

Jun Wu - May 11, 2017, 1:47 a.m.
# HG changeset patch
# User Jun Wu <quark@fb.com>
# Date 1494457921 25200
#      Wed May 10 16:12:01 2017 -0700
# Node ID a5a22d616f981e8c220f1c2fd4eae098e104a11c
# Parent  1b4a17fefa2e67b6bf9294c9fbce586a6646bdaa
# Available At https://bitbucket.org/quark-zju/hg-draft
#              hg pull https://bitbucket.org/quark-zju/hg-draft -r a5a22d616f98
flagprocessor: migrate addflagprocessor to registerflagprocessor

This patch migrates all users of addflagprocessor to registerflagprocessor.
So addflagprocessor is not used in the code base and could be removed when
external code completes migration.
Jun Wu - May 14, 2017, 7:04 p.m.
Actually, I think the current API is useful in some cases - like a flag is
both useful for filelog and manifest, filelog wants hash verification but
not manifest. So I'll drop Patch 1 and 2 from patchwork and keep Patch 3,
which is still useful.

Excerpts from Jun Wu's message of 2017-05-10 18:47:34 -0700:
> # HG changeset patch
> # User Jun Wu <quark@fb.com>
> # Date 1494457921 25200
> #      Wed May 10 16:12:01 2017 -0700
> # Node ID a5a22d616f981e8c220f1c2fd4eae098e104a11c
> # Parent  1b4a17fefa2e67b6bf9294c9fbce586a6646bdaa
> # Available At https://bitbucket.org/quark-zju/hg-draft 
> #              hg pull https://bitbucket.org/quark-zju/hg-draft  -r a5a22d616f98
> flagprocessor: migrate addflagprocessor to registerflagprocessor
> 
> This patch migrates all users of addflagprocessor to registerflagprocessor.
> So addflagprocessor is not used in the code base and could be removed when
> external code completes migration.
> 
> diff --git a/mercurial/revlog.py b/mercurial/revlog.py
> --- a/mercurial/revlog.py
> +++ b/mercurial/revlog.py
> @@ -76,5 +76,5 @@ CensoredNodeError = error.CensoredNodeEr
>  ProgrammingError = error.ProgrammingError
>  
> -# Store flag processors (cf. 'addflagprocessor()' to register)
> +# Store flag processors (cf. 'registerflagprocessor()' to register)
>  _flagprocessors = {
>      REVIDX_ISCENSORED: None,
> diff --git a/mercurial/verify.py b/mercurial/verify.py
> --- a/mercurial/verify.py
> +++ b/mercurial/verify.py
> @@ -408,5 +408,5 @@ class verifier(object):
>                  # 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 revlog.registerflagprocessor).
>                  #
>                  #              | common  | rename | meta  | ext
> diff --git a/tests/flagprocessorext.py b/tests/flagprocessorext.py
> --- a/tests/flagprocessorext.py
> +++ b/tests/flagprocessorext.py
> @@ -23,24 +23,18 @@ REVIDX_GZIP = (1 << 1)
>  REVIDX_FAIL = 1
>  
> -def validatehash(self, text):
> -    return True
> -
> -def bypass(self, text):
> -    return False
> -
>  def noopdonothing(self, text):
> -    return (text, True)
> +    return text
>  
>  def b64encode(self, text):
> -    return (base64.b64encode(text), False)
> +    return base64.b64encode(text)
>  
>  def b64decode(self, text):
> -    return (base64.b64decode(text), True)
> +    return base64.b64decode(text)
>  
>  def gzipcompress(self, text):
> -    return (zlib.compress(text), False)
> +    return zlib.compress(text)
>  
>  def gzipdecompress(self, text):
> -    return (zlib.decompress(text), True)
> +    return zlib.decompress(text)
>  
>  def supportedoutgoingversions(orig, repo):
> @@ -117,26 +111,17 @@ def extsetup(ui):
>  
>      # Register flag processors for each extension
> -    revlog.addflagprocessor(
> +    revlog.registerflagprocessor(
>          REVIDX_NOOP,
> -        (
> -            noopdonothing,
> -            noopdonothing,
> -            validatehash,
> -        )
> +        noopdonothing,
> +        noopdonothing,
>      )
> -    revlog.addflagprocessor(
> +    revlog.registerflagprocessor(
>          REVIDX_BASE64,
> -        (
> -            b64decode,
> -            b64encode,
> -            bypass,
> -        ),
> +        b64decode,
> +        b64encode,
>      )
> -    revlog.addflagprocessor(
> +    revlog.registerflagprocessor(
>          REVIDX_GZIP,
> -        (
> -            gzipdecompress,
> -            gzipcompress,
> -            bypass
> -        )
> +        gzipdecompress,
> +        gzipcompress,
>      )
> diff --git a/tests/test-revlog-raw.py b/tests/test-revlog-raw.py
> --- a/tests/test-revlog-raw.py
> +++ b/tests/test-revlog-raw.py
> @@ -38,18 +38,13 @@ def readprocessor(self, rawtext):
>      # True: the returned text could be used to verify hash
>      text = rawtext[len(_extheader):].replace(b'i', b'1')
> -    return text, True
> +    return text
>  
>  def writeprocessor(self, text):
>      # False: the returned rawtext shouldn't be used to verify hash
>      rawtext = _extheader + text.replace(b'1', b'i')
> -    return rawtext, False
> +    return rawtext
>  
> -def rawprocessor(self, rawtext):
> -    # False: do not verify hash. Only the content returned by "readprocessor"
> -    # can be used to verify hash.
> -    return False
> -
> -revlog.addflagprocessor(revlog.REVIDX_EXTSTORED,
> -                        (readprocessor, writeprocessor, rawprocessor))
> +revlog.registerflagprocessor(revlog.REVIDX_EXTSTORED, readprocessor,
> +                             writeprocessor)
>  
>  # Utilities about reading and appending revlog
> @@ -229,5 +224,5 @@ def writecases(rlog, tr):
>          # Verify text, rawtext, and rawsize
>          if isext:
> -            rawtext = writeprocessor(None, text)[0]
> +            rawtext = writeprocessor(None, text)
>          else:
>              rawtext = text

Patch

diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -76,5 +76,5 @@  CensoredNodeError = error.CensoredNodeEr
 ProgrammingError = error.ProgrammingError
 
-# Store flag processors (cf. 'addflagprocessor()' to register)
+# Store flag processors (cf. 'registerflagprocessor()' to register)
 _flagprocessors = {
     REVIDX_ISCENSORED: None,
diff --git a/mercurial/verify.py b/mercurial/verify.py
--- a/mercurial/verify.py
+++ b/mercurial/verify.py
@@ -408,5 +408,5 @@  class verifier(object):
                 # 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 revlog.registerflagprocessor).
                 #
                 #              | common  | rename | meta  | ext
diff --git a/tests/flagprocessorext.py b/tests/flagprocessorext.py
--- a/tests/flagprocessorext.py
+++ b/tests/flagprocessorext.py
@@ -23,24 +23,18 @@  REVIDX_GZIP = (1 << 1)
 REVIDX_FAIL = 1
 
-def validatehash(self, text):
-    return True
-
-def bypass(self, text):
-    return False
-
 def noopdonothing(self, text):
-    return (text, True)
+    return text
 
 def b64encode(self, text):
-    return (base64.b64encode(text), False)
+    return base64.b64encode(text)
 
 def b64decode(self, text):
-    return (base64.b64decode(text), True)
+    return base64.b64decode(text)
 
 def gzipcompress(self, text):
-    return (zlib.compress(text), False)
+    return zlib.compress(text)
 
 def gzipdecompress(self, text):
-    return (zlib.decompress(text), True)
+    return zlib.decompress(text)
 
 def supportedoutgoingversions(orig, repo):
@@ -117,26 +111,17 @@  def extsetup(ui):
 
     # Register flag processors for each extension
-    revlog.addflagprocessor(
+    revlog.registerflagprocessor(
         REVIDX_NOOP,
-        (
-            noopdonothing,
-            noopdonothing,
-            validatehash,
-        )
+        noopdonothing,
+        noopdonothing,
     )
-    revlog.addflagprocessor(
+    revlog.registerflagprocessor(
         REVIDX_BASE64,
-        (
-            b64decode,
-            b64encode,
-            bypass,
-        ),
+        b64decode,
+        b64encode,
     )
-    revlog.addflagprocessor(
+    revlog.registerflagprocessor(
         REVIDX_GZIP,
-        (
-            gzipdecompress,
-            gzipcompress,
-            bypass
-        )
+        gzipdecompress,
+        gzipcompress,
     )
diff --git a/tests/test-revlog-raw.py b/tests/test-revlog-raw.py
--- a/tests/test-revlog-raw.py
+++ b/tests/test-revlog-raw.py
@@ -38,18 +38,13 @@  def readprocessor(self, rawtext):
     # True: the returned text could be used to verify hash
     text = rawtext[len(_extheader):].replace(b'i', b'1')
-    return text, True
+    return text
 
 def writeprocessor(self, text):
     # False: the returned rawtext shouldn't be used to verify hash
     rawtext = _extheader + text.replace(b'1', b'i')
-    return rawtext, False
+    return rawtext
 
-def rawprocessor(self, rawtext):
-    # False: do not verify hash. Only the content returned by "readprocessor"
-    # can be used to verify hash.
-    return False
-
-revlog.addflagprocessor(revlog.REVIDX_EXTSTORED,
-                        (readprocessor, writeprocessor, rawprocessor))
+revlog.registerflagprocessor(revlog.REVIDX_EXTSTORED, readprocessor,
+                             writeprocessor)
 
 # Utilities about reading and appending revlog
@@ -229,5 +224,5 @@  def writecases(rlog, tr):
         # Verify text, rawtext, and rawsize
         if isext:
-            rawtext = writeprocessor(None, text)[0]
+            rawtext = writeprocessor(None, text)
         else:
             rawtext = text