diff mercurial/scmutil.py @ 32658:55ff67ffcead

scmutil: introduce binnode(ctx) as paired function with intrev(ctx) It seemed silly to convert ctx.hex() back to binary to use node.hex/short(), or to use [:12] instead of node.short() because ctx.node() could be None. Eventually I want to change wctx.rev() and wctx.node() to return wdirrev and wdirid respectively, but that's quite big API breakage and can't be achieved without some compatibility wrappers.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 03 Jun 2017 19:12:01 +0900
parents 4bec8cce6a09
children 7b17f9de6d3e
line wrap: on
line diff
--- a/mercurial/scmutil.py	Sat Jun 03 19:01:19 2017 +0900
+++ b/mercurial/scmutil.py	Sat Jun 03 19:12:01 2017 +0900
@@ -15,7 +15,11 @@
 import socket
 
 from .i18n import _
-from .node import wdirrev
+from .node import (
+    wdirid,
+    wdirrev,
+)
+
 from . import (
     encoding,
     error,
@@ -376,6 +380,13 @@
                         newdirs.append(d)
             dirs[:] = newdirs
 
+def binnode(ctx):
+    """Return binary node id for a given basectx"""
+    node = ctx.node()
+    if node is None:
+        return wdirid
+    return node
+
 def intrev(ctx):
     """Return integer for a given basectx that can be used in comparison or
     arithmetic operation"""