COIN-OR::LEMON - Graph Library

source: lemon/scripts/chg-len.py @ 272:e63a95b68827

Last change on this file since 272:e63a95b68827 was 272:e63a95b68827, checked in by Alpar Juttner <alpar@…>, 11 years ago

Python script for computing the longest path in the revision tree

  • Property exe set to *
File size: 977 bytes
Line 
1#! /usr/bin/env python
2
3import sys
4import os
5
6if len(sys.argv)>1 and sys.argv[1] in ["-h","--help"]:
7    print """
8This utility just prints the length of the longest path
9in the revision graph from revison 0 to the current one.
10"""
11    exit(0)
12plist = os.popen("hg parents --template='{rev}\n'").readlines()
13if len(plist)>1:
14    print "You are in the process of merging"
15    exit(1)
16PAR = int(plist[0])
17
18f = os.popen("hg log -r 0:tip --template='{rev} {parents}\n'").readlines()
19REV = -1
20lengths=[]
21for l in f:
22    REV+=1
23    s = l.split()
24    rev = int(s[0])
25    if REV != rev:
26        print "Something is seriously wrong"
27        exit(1)
28    if len(s) == 1:
29        par1 = par2 = rev - 1
30    elif len(s) == 2:
31        par1 = par2 = int(s[1].split(":")[0])
32    else:
33        par1 = int(s[1].split(":")[0])
34        par2 = int(s[2].split(":")[0])
35    if rev == 0:
36        lengths.append(0)
37    else:
38        lengths.append(max(lengths[par1],lengths[par2])+1)
39print lengths[PAR]
Note: See TracBrowser for help on using the repository browser.