view tools/common.sh @ 817:3b613d32ef11

svnexternals: fix subrepo peg revision handling (7ef125fa9b35) hg >= 1.9 appends the revision to check out as a peg revision to source URL before calling svn. This breaks the case where the external definition already contains a peg revision. Instead, we assume that "-rR1 svnurl@R2" is equivalent to "svnurl@R1" which should be almost always true in practice. The import test has been reversed to avoid issues with stray .pyc: if you install an hg 1.8 over an hg 1.9, scmutil.pyc may remain and be imported, while util.py exists in both cases.
author Patrick Mezard <pmezard@gmail.com>
date Wed, 06 Jul 2011 10:22:32 +0200
parents 5071b8511572
children
line wrap: on
line source

function verify_current_revision()
{
    /bin/rm -rf *
    exportcmd="svn export `hg svn info 2> /dev/null | grep '^URL: ' | sed 's/URL: //'`@`hg svn info | grep ^Revision | sed 's/.*: //;s/ .*//'` . --force"
    `echo $exportcmd` > /dev/null
    x=$?
    if [[ "$x" != "0" ]] ; then
        echo $exportcmd
        echo 'export failed!'
        return 255
    fi
    if [[ "`hg st | wc -l | python -c 'import sys; print sys.stdin.read().strip()'`" == "0" ]] ; then
        return 0
    else
        if [[ $1 != "keep" ]] ; then
            revert_all_files
        fi
        return 1
    fi
}

function revert_all_files()
{
    hg revert --all
    hg purge
}