view tools/common.sh @ 611:b70f7c82b9b8

svncommands: fix layering violation & tweak error messages. Importing `SubversionException' directly from `svn.core' is a layering violation: Anything within the Subversion bindings should only be accessed via svnwrap. The advantages to doing this are twofold: we only need to intercept missing bindings in one place, and we have the option of supporting alternate bindings. As an added bonus, the recently-added support for intercepting missing Subversion bindings actually works. Two error messages are tweaked to remove `It appears...' from one error message (just blaming Subversion instead) and make both errors include the URL in the suggested command line.
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Fri, 14 May 2010 20: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
}