--- old/./get_source.sh 2014-06-23 14:43:13.344617176 -0700 +++ new/./get_source.sh 2014-06-23 14:43:13.248617172 -0700 @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -25,9 +25,48 @@ # questions. # -# Get clones of all nested repositories -sh ./common/bin/hgforest.sh clone "$@" || exit 1 +# Version check + +# required +reqdmajor=1 +reqdminor=5 +reqdrev=0 + +# requested +rqstmajor=2 +rqstminor=6 +rqstrev=3 + +# installed +hgwhere="`which hg 2> /dev/null | grep -v '^no hg in '`" +if [ "x$hgwhere" = "x" ]; then + echo "ERROR: Could not locate Mercurial command" >&2 + exit 126 +fi + +hgversion="`hg --version 2> /dev/null | sed -n -e 's@^Mercurial Distributed SCM (version \(.*\))\$@\1@p'`" +if [ "x${hgversion}" = "x" ] ; then + echo "ERROR: Could not determine Mercurial version" >&2 + exit 126 +fi + +hgmajor="`echo $hgversion | cut -f 1 -d .`" +hgminor="`echo $hgversion | cut -f 2 -d .`" +hgrev="`echo $hgversion.0 | cut -f 3 -d .`" # rev is omitted for minor and major releases + +# Require +if [ $hgmajor -lt $reqdmajor -o \( $hgmajor -eq $reqdmajor -a $hgminor -lt $reqdminor \) -o \( $hgmajor -eq $reqdmajor -a $hgminor -eq $reqdminor -a $hgrev -lt $reqdrev \) ] ; then + echo "ERROR: Mercurial version $reqdmajor.$reqdminor.$reqdrev or later is required. $hgwhere is version $hgversion" >&2 + exit 126 +fi + +# Request +if [ $hgmajor -lt $rqstmajor -o \( $hgmajor -eq $rqstmajor -a $hgminor -lt $rqstminor \) -o \( $hgmajor -eq $rqstmajor -a $hgminor -eq $rqstminor -a $hgrev -lt $rqstrev \) ] ; then + echo "WARNING: Mercurial version $rqstmajor.$rqstminor.$rqstrev or later is recommended. $hgwhere is version version $hgversion" >&2 +fi + +# Get clones of all absent nested repositories (harmless if already exist) +sh ./common/bin/hgforest.sh clone "$@" || exit $? # Update all existing repositories to the latest sources sh ./common/bin/hgforest.sh pull -u -