Mercurial > hg
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])