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