view mercurial/node.py @ 7882:8d78fc991b71

ancestor: caching the parent list to improve performance When computing the DAG depth, we walk through all ancestors: this commit adds memoization during that first step. Then, the memorized parents are fetched from a dict instead of calling parents() on each vertex. This tweak, according to Kcachegrind, improves ancestor() performance by 16% when cloning a big repository.
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Mon, 23 Mar 2009 15:36:30 +0100
parents e45fc5d03798
children 46293a0c7e9f
line wrap: on
line source

"""
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, incorporated herein by reference.
"""

import binascii

nullrev = -1
nullid = "\0" * 20

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

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