#!/bin/bash
# Copyright (c) 2012, International Business Machines Corporation and others.  All Rights Reserved.
# for fixing misticketted
# see http://bugs.icu-project.org/trac/wiki/MisTicketted
# TODO:  cleanup ${TMPF}*



rev=
from=
to=

usage()
{
    echo "$0 -r rev -f frombug -t tobug"
}

while getopts "r:f:t:" opt; do
    case $opt in
        r)
            rev=$OPTARG
            ;;
        f)
            from=$OPTARG
            ;;
        t)
            to=$OPTARG
            ;;
        \?)
            echo "Invalid: -$OPTARG" >&2
            usage
            exit 1
            ;;
    esac
done

if [[ ! $rev ]];
then
    echo "need -r rev option" >&2
    usage
    exit 1
fi

if [[ ! $from ]];
then
    echo "need -f oldbug option" >&2
    usage
    exit 1
fi

if [[ ! $to ]];
then
    echo "need -t newbug option" >&2
    usage
    exit 1
fi

if [[ ! -d .svn ]];
then
    echo ".svn is not a directory. Please cd somewhere else." >&2
    exit 1
fi

if [[ ! -d ${TMPDIR} ]];
then
    TMPDIR=/tmp
fi

TMPF=${TMPDIR}/reticket.r${rev}.f${from}.t${to}.txt

echo "Getting log for r${rev}" >&2
( svn pg svn:log --revprop -r ${rev} . | tee  ${TMPF} | sed -e 's%^%< %g' ) || exit 1

head -1 ${TMPF} > ${TMPF}.1

if grep -q "^ticket:${from}[^0-9]" ${TMPF}.1;
then
    echo "-- old/new --"
else
    if grep -q "^ticket:${to}[^0-9]" ${TMPF}.1;
    then
        echo "r${rev} already references ticket:${to} - exitting." >&2
        exit 0
    else
        echo "Error: r${rev} doesn't pertain to ticket:${from} - was this already fixed?" >&2
        exit 1
    fi
fi

( ( sed -e "s%^ticket:${from}%ticket:${to}%" ${TMPF}.1 && tail +2 ${TMPF} ) || exit 2 ) | tee ${TMPF}.fix | sed -e 's%^%> %g'

CMD="svn ps svn:log --revprop -r ${rev} -F ${TMPF}.fix"
echo "# ${CMD}"
echo "type YES to do, ^C to kill"
read foo
if [[ $foo = "YES" ]];
then
    echo "## Remember the server still needs to be resynced. See http://bugs.icu-project.org/trac/wiki/FixingMisTicketted"
    exec ${CMD}
else
    exit 0
fi

