scripts/chg-len.py
author Peter Kovacs <kpeter@inf.elte.hu>
Fri, 12 Dec 2008 22:59:17 +0100
changeset 472 91fcb8ed4cdc
parent 284 a16cc721259e
child 439 62c1ed05e83f
permissions -rwxr-xr-x
Various bug fixes and code improvements in adaptors.h (#67)

- Fix UndirectorBase::nodeNum().
- Fix UndirectorBase::findEdge().
- Fix OrienterBase::addArc().
- Fix OrienterBase::findArc().
- Improve SplitNodesBase::findArc().
- Add missing notifier() function in UndirectorBase.
- Add missing typedefs for maps (conform to the ReferenceMap concept).
- Add some useful typedefs for graph adaptors.
     1 #! /usr/bin/env python
     2 
     3 import sys
     4 
     5 from mercurial import ui, hg
     6 
     7 if len(sys.argv)>1 and sys.argv[1] in ["-h","--help"]:
     8     print """
     9 This utility just prints the length of the longest path
    10 in the revision graph from revison 0 to the current one.
    11 """
    12     exit(0)
    13 
    14 u = ui.ui()
    15 r = hg.repository(u, ".")
    16 N = r.changectx(".").rev()
    17 lengths=[0]*(N+1)
    18 for i in range(N+1):
    19     p=r.changectx(i).parents()
    20     if p[0]:
    21         p0=lengths[p[0].rev()]
    22     else:
    23         p0=-1
    24     if len(p)>1 and p[1]:
    25         p1=lengths[p[1].rev()]
    26     else:
    27         p1=-1
    28     lengths[i]=max(p0,p1)+1
    29 print lengths[N]