# HG changeset patch # User Alpar Juttner # Date 1222067564 -3600 # Node ID 0821fea54d53f8c5ee78ed349425e7b5c3edfe8f # Parent 2a33883915bba63fc93d72dc552315796877e65f# Parent 5d12d5c80ac9d3204a4768fd1e02c053ce413e3d Merge diff -r 2a33883915bb -r 0821fea54d53 configure.ac --- a/configure.ac Sun Sep 21 18:23:07 2008 +0100 +++ b/configure.ac Mon Sep 22 08:12:44 2008 +0100 @@ -1,9 +1,15 @@ dnl Process this file with autoconf to produce a configure script. dnl Version information. -m4_define([lemon_version_number], []) +m4_define([lemon_version_number], + [m4_normalize(esyscmd([echo ${LEMON_VERSION}]))]) +dnl m4_define([lemon_version_number], []) +m4_define([lemon_hg_path], [m4_normalize(esyscmd([./scripts/chg-len.py]))]) m4_define([lemon_hg_revision], [m4_normalize(esyscmd([hg id -i]))]) -m4_define([lemon_version], [ifelse(lemon_version_number(), [], [lemon_hg_revision()], [lemon_version_number()])]) +m4_define([lemon_version], [ifelse(lemon_version_number(), + [], + [lemon_hg_path().lemon_hg_revision()], + [lemon_version_number()])]) AC_PREREQ([2.59]) AC_INIT([LEMON], [lemon_version()], [lemon-user@lemon.cs.elte.hu], [lemon]) diff -r 2a33883915bb -r 0821fea54d53 scripts/chg-len.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/chg-len.py Mon Sep 22 08:12:44 2008 +0100 @@ -0,0 +1,39 @@ +#! /usr/bin/env python + +import sys +import os + +if len(sys.argv)>1 and sys.argv[1] in ["-h","--help"]: + print """ +This utility just prints the length of the longest path +in the revision graph from revison 0 to the current one. +""" + exit(0) +plist = os.popen("hg parents --template='{rev}\n'").readlines() +if len(plist)>1: + print "You are in the process of merging" + exit(1) +PAR = int(plist[0]) + +f = os.popen("hg log -r 0:tip --template='{rev} {parents}\n'").readlines() +REV = -1 +lengths=[] +for l in f: + REV+=1 + s = l.split() + rev = int(s[0]) + if REV != rev: + print "Something is seriously wrong" + exit(1) + if len(s) == 1: + par1 = par2 = rev - 1 + elif len(s) == 2: + par1 = par2 = int(s[1].split(":")[0]) + else: + par1 = int(s[1].split(":")[0]) + par2 = int(s[2].split(":")[0]) + if rev == 0: + lengths.append(0) + else: + lengths.append(max(lengths[par1],lengths[par2])+1) +print lengths[PAR]