node.py
61 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
/ mercurial / node.py
Martin Geisler
|
r8226 | # node.py - basic nodeid manipulation for mercurial | ||
# | ||||
Raphaël Gomès
|
r47575 | # Copyright 2005, 2006 Olivia Mackall <olivia@selenic.com> | ||
Martin Geisler
|
r8226 | # | ||
# This software may be used and distributed according to the terms of the | ||||
Matt Mackall
|
r10263 | # GNU General Public License version 2 or any later version. | ||
mpm@selenic.com
|
r1089 | |||
Matt Harbison
|
r52756 | from __future__ import annotations | ||
Gregory Szorc
|
r25962 | |||
Matt Mackall
|
r3877 | import binascii | ||
mpm@selenic.com
|
r1089 | |||
Siddharth Agarwal
|
r26980 | # This ugly style has a noticeable effect in manifest parsing | ||
hex = binascii.hexlify | ||||
Manuel Jacob
|
r50143 | bin = binascii.unhexlify | ||
Siddharth Agarwal
|
r26980 | |||
Augie Fackler
|
r43345 | |||
Joerg Sonnenberger
|
r47538 | def short(node): | ||
return hex(node[:6]) | ||||
mpm@selenic.com
|
r1089 | |||
Joerg Sonnenberger
|
r47538 | nullrev = -1 | ||
Durham Goode
|
r30360 | |||
Joerg Sonnenberger
|
r47538 | # pseudo identifier for working directory | ||
# (experimental, so don't add too many dependencies on it) | ||||
Augie Fackler
|
r43345 | wdirrev = 0x7FFFFFFF | ||
Yuya Nishihara
|
r25737 | |||
Augie Fackler
|
r43345 | |||
Gregory Szorc
|
r49801 | class sha1nodeconstants: | ||
Joerg Sonnenberger
|
r47538 | 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 | ||||