node.py
42 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
/ mercurial / node.py
Martin Geisler
|
r8226 | # node.py - basic nodeid manipulation for mercurial | ||
# | ||||
# Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | ||||
# | ||||
# 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 | |||
Gregory Szorc
|
r25962 | from __future__ import absolute_import | ||
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 | ||||
Augie Fackler
|
r36256 | # Adapt to Python 3 API changes. If this ends up showing up in | ||
# profiles, we can use this version only on Python 3, and forward | ||||
# binascii.unhexlify like we used to on Python 2. | ||||
def bin(s): | ||||
try: | ||||
return binascii.unhexlify(s) | ||||
except binascii.Error as e: | ||||
raise TypeError(e) | ||||
Siddharth Agarwal
|
r26980 | |||
Thomas Arendsen Hein
|
r3578 | nullrev = -1 | ||
Gregory Szorc
|
r28585 | nullid = b"\0" * 20 | ||
Siddharth Agarwal
|
r26980 | nullhex = hex(nullid) | ||
mpm@selenic.com
|
r1089 | |||
Durham Goode
|
r30360 | # Phony node value to stand-in for new files in some uses of | ||
# manifests. | ||||
newnodeid = '!' * 20 | ||||
Durham Goode
|
r30361 | addednodeid = ('0' * 15) + 'added' | ||
modifiednodeid = ('0' * 12) + 'modified' | ||||
Durham Goode
|
r30360 | |||
Yuya Nishihara
|
r37466 | wdirfilenodeids = {newnodeid, addednodeid, modifiednodeid} | ||
Durham Goode
|
r30360 | |||
Yuya Nishihara
|
r25737 | # pseudo identifiers for working directory | ||
# (they are experimental, so don't add too many dependencies on them) | ||||
wdirrev = 0x7fffffff | ||||
Gregory Szorc
|
r28585 | wdirid = b"\xff" * 20 | ||
Yuya Nishihara
|
r32684 | wdirhex = hex(wdirid) | ||
Yuya Nishihara
|
r25737 | |||
mpm@selenic.com
|
r1089 | def short(node): | ||
return hex(node[:6]) | ||||