mercurial/node.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Sun, 28 May 2017 00:12:38 +0200
changeset 32892 a7851519ea02
parent 32684 af854b1b36f8
child 36238 f574cc00831a
permissions -rw-r--r--
check-concurrency: expose the feature as 'concurrent-push-mode' We move the feature to a proper configuration and document it. The config goes in the 'server' section because it feels like something the server owner would want to decide. We pick and open field because it seems likely that other checking levels will emerge in the future. (eg: server like the mozilla-try server will likely wants a "none" value) The option name contains 'push' since this affects 'push' only. The option value 'check-related' is preferred over one explicitly containing 'allow' or 'deny' because the client still have a strong decision power here. Here, the server is just advising the client on the check mode to use.

# 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
# GNU General Public License version 2 or any later version.

from __future__ import absolute_import

import binascii

# This ugly style has a noticeable effect in manifest parsing
hex = binascii.hexlify
bin = binascii.unhexlify

nullrev = -1
nullid = b"\0" * 20
nullhex = hex(nullid)

# Phony node value to stand-in for new files in some uses of
# manifests.
newnodeid = '!' * 20
addednodeid = ('0' * 15) + 'added'
modifiednodeid = ('0' * 12) + 'modified'

wdirnodes = {newnodeid, addednodeid, modifiednodeid}

# pseudo identifiers for working directory
# (they are experimental, so don't add too many dependencies on them)
wdirrev = 0x7fffffff
wdirid = b"\xff" * 20
wdirhex = hex(wdirid)

def short(node):
    return hex(node[:6])