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