--- a/mercurial/node.py Wed Mar 10 18:09:21 2021 +0100
+++ b/mercurial/node.py Wed Jan 13 16:14:58 2021 +0100
@@ -21,29 +21,48 @@
raise TypeError(e)
-nullrev = -1
-# In hex, this is '0000000000000000000000000000000000000000'
-nullid = b"\0" * 20
-nullhex = hex(nullid)
+def short(node):
+ return hex(node[:6])
+
-# Phony node value to stand-in for new files in some uses of
-# manifests.
-# In hex, this is '2121212121212121212121212121212121212121'
-newnodeid = b'!!!!!!!!!!!!!!!!!!!!'
-# In hex, this is '3030303030303030303030303030306164646564'
-addednodeid = b'000000000000000added'
-# In hex, this is '3030303030303030303030306d6f646966696564'
-modifiednodeid = b'000000000000modified'
+nullrev = -1
-wdirfilenodeids = {newnodeid, addednodeid, modifiednodeid}
-
-# pseudo identifiers for working directory
-# (they are experimental, so don't add too many dependencies on them)
+# pseudo identifier for working directory
+# (experimental, so don't add too many dependencies on it)
wdirrev = 0x7FFFFFFF
-# In hex, this is 'ffffffffffffffffffffffffffffffffffffffff'
-wdirid = b"\xff" * 20
-wdirhex = hex(wdirid)
-def short(node):
- return hex(node[:6])
+class sha1nodeconstants(object):
+ nodelen = 20
+
+ # In hex, this is '0000000000000000000000000000000000000000'
+ nullid = b"\0" * nodelen
+ nullhex = hex(nullid)
+
+ # Phony node value to stand-in for new files in some uses of
+ # manifests.
+ # In hex, this is '2121212121212121212121212121212121212121'
+ newnodeid = b'!!!!!!!!!!!!!!!!!!!!'
+ # In hex, this is '3030303030303030303030303030306164646564'
+ addednodeid = b'000000000000000added'
+ # In hex, this is '3030303030303030303030306d6f646966696564'
+ modifiednodeid = b'000000000000modified'
+
+ wdirfilenodeids = {newnodeid, addednodeid, modifiednodeid}
+
+ # pseudo identifier for working directory
+ # (experimental, so don't add too many dependencies on it)
+ # In hex, this is 'ffffffffffffffffffffffffffffffffffffffff'
+ wdirid = b"\xff" * nodelen
+ wdirhex = hex(wdirid)
+
+
+# legacy starting point for porting modules
+nullid = sha1nodeconstants.nullid
+nullhex = sha1nodeconstants.nullhex
+newnodeid = sha1nodeconstants.newnodeid
+addednodeid = sha1nodeconstants.addednodeid
+modifiednodeid = sha1nodeconstants.modifiednodeid
+wdirfilenodeids = sha1nodeconstants.wdirfilenodeids
+wdirid = sha1nodeconstants.wdirid
+wdirhex = sha1nodeconstants.wdirhex