alpar@272: #! /usr/bin/env python alpar@733: # alpar@733: # This file is a part of LEMON, a generic C++ optimization library. alpar@733: # alpar@733: # Copyright (C) 2003-2009 alpar@733: # Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport alpar@733: # (Egervary Research Group on Combinatorial Optimization, EGRES). alpar@733: # alpar@733: # Permission to use, modify and distribute this software is granted alpar@733: # provided that this copyright notice appears in all copies. For alpar@733: # precise terms see the accompanying LICENSE file. alpar@733: # alpar@733: # This software is provided "AS IS" with no warranty of any kind, alpar@733: # express or implied, and with no claim as to its suitability for any alpar@733: # purpose. alpar@272: alpar@272: import sys alpar@376: alpar@376: from mercurial import ui, hg alpar@422: from mercurial import util alpar@422: alpar@422: util.rcpath = lambda : [] 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@272: alpar@376: u = ui.ui() alpar@376: r = hg.repository(u, ".") alpar@376: N = r.changectx(".").rev() alpar@376: lengths=[0]*(N+1) alpar@376: for i in range(N+1): alpar@376: p=r.changectx(i).parents() alpar@376: if p[0]: alpar@376: p0=lengths[p[0].rev()] alpar@272: else: alpar@376: p0=-1 alpar@376: if len(p)>1 and p[1]: alpar@376: p1=lengths[p[1].rev()] alpar@272: else: alpar@376: p1=-1 alpar@376: lengths[i]=max(p0,p1)+1 alpar@376: print lengths[N]