scripts/chg-len.py
author Peter Kovacs <kpeter@inf.elte.hu>
Fri, 17 Apr 2009 18:04:36 +0200
changeset 609 e6927fe719e6
parent 376 4b2382fd80ef
child 733 abf31e4af617
permissions -rwxr-xr-x
Support >= and <= constraints in NetworkSimplex (#219, #234)

By default the same inequality constraints are supported as by
Circulation (the GEQ form), but the LEQ form can also be selected
using the problemType() function.

The documentation of the min. cost flow module is reworked and
extended with important notes and explanations about the different
variants of the problem and about the dual solution and optimality
conditions.
     1 #! /usr/bin/env python
     2 
     3 import sys
     4 
     5 from mercurial import ui, hg
     6 from mercurial import util
     7 
     8 util.rcpath = lambda : []
     9 
    10 if len(sys.argv)>1 and sys.argv[1] in ["-h","--help"]:
    11     print """
    12 This utility just prints the length of the longest path
    13 in the revision graph from revison 0 to the current one.
    14 """
    15     exit(0)
    16 
    17 u = ui.ui()
    18 r = hg.repository(u, ".")
    19 N = r.changectx(".").rev()
    20 lengths=[0]*(N+1)
    21 for i in range(N+1):
    22     p=r.changectx(i).parents()
    23     if p[0]:
    24         p0=lengths[p[0].rev()]
    25     else:
    26         p0=-1
    27     if len(p)>1 and p[1]:
    28         p1=lengths[p[1].rev()]
    29     else:
    30         p1=-1
    31     lengths[i]=max(p0,p1)+1
    32 print lengths[N]