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]