alpar@272: #! /usr/bin/env python
alpar@272: 
alpar@272: import sys
alpar@272: import os
alpar@272: 
alpar@272: if len(sys.argv)>1 and sys.argv[1] in ["-h","--help"]:
alpar@272:     print """
alpar@272: This utility just prints the length of the longest path
alpar@272: in the revision graph from revison 0 to the current one.
alpar@272: """
alpar@272:     exit(0)
alpar@284: plist = os.popen("HGRCPATH='' hg parents --template='{rev}\n'").readlines()
alpar@272: if len(plist)>1:
alpar@272:     print "You are in the process of merging"
alpar@272:     exit(1)
alpar@272: PAR = int(plist[0])
alpar@272: 
alpar@284: f = os.popen("HGRCPATH='' hg log -r 0:tip --template='{rev} {parents}\n'").\
alpar@284:     readlines()
alpar@272: REV = -1
alpar@272: lengths=[]
alpar@272: for l in f:
alpar@272:     REV+=1
alpar@272:     s = l.split()
alpar@272:     rev = int(s[0])
alpar@272:     if REV != rev:
alpar@272:         print "Something is seriously wrong"
alpar@272:         exit(1)
alpar@272:     if len(s) == 1:
alpar@272:         par1 = par2 = rev - 1
alpar@272:     elif len(s) == 2:
alpar@272:         par1 = par2 = int(s[1].split(":")[0])
alpar@272:     else:
alpar@272:         par1 = int(s[1].split(":")[0])
alpar@272:         par2 = int(s[2].split(":")[0])
alpar@272:     if rev == 0:
alpar@272:         lengths.append(0)
alpar@272:     else:
alpar@272:         lengths.append(max(lengths[par1],lengths[par2])+1)
alpar@272: print lengths[PAR]