scripts/chg-len.py
changeset 2 4c8956a7bdf4
equal deleted inserted replaced
-1:000000000000 0:cd9e5c62d97b
       
     1 #! /usr/bin/env python
       
     2 #
       
     3 # This file is a part of LEMON, a generic C++ optimization library.
       
     4 #
       
     5 # Copyright (C) 2003-2009
       
     6 # Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
       
     7 # (Egervary Research Group on Combinatorial Optimization, EGRES).
       
     8 #
       
     9 # Permission to use, modify and distribute this software is granted
       
    10 # provided that this copyright notice appears in all copies. For
       
    11 # precise terms see the accompanying LICENSE file.
       
    12 #
       
    13 # This software is provided "AS IS" with no warranty of any kind,
       
    14 # express or implied, and with no claim as to its suitability for any
       
    15 # purpose.
       
    16 
       
    17 import sys
       
    18 
       
    19 from mercurial import ui, hg
       
    20 from mercurial import util
       
    21 
       
    22 util.rcpath = lambda : []
       
    23 
       
    24 if len(sys.argv)>1 and sys.argv[1] in ["-h","--help"]:
       
    25     print """
       
    26 This utility just prints the length of the longest path
       
    27 in the revision graph from revison 0 to the current one.
       
    28 """
       
    29     exit(0)
       
    30 
       
    31 u = ui.ui()
       
    32 r = hg.repository(u, ".")
       
    33 N = r.changectx(".").rev()
       
    34 lengths=[0]*(N+1)
       
    35 for i in range(N+1):
       
    36     p=r.changectx(i).parents()
       
    37     if p[0]:
       
    38         p0=lengths[p[0].rev()]
       
    39     else:
       
    40         p0=-1
       
    41     if len(p)>1 and p[1]:
       
    42         p1=lengths[p[1].rev()]
       
    43     else:
       
    44         p1=-1
       
    45     lengths[i]=max(p0,p1)+1
       
    46 print lengths[N]