#!/bin/sh # Name : /public/scripts/rollback_chg # Purpose : rollback from a submitted changelist script # Arguments: : 1 - a given submitted changelist number. # By : Yariv Sheizaf # Date : 21-Jan-2002 echo "" echo "Submitted changelist number ?" echo "" read ANS CHG=$ANS p4 change -o $CHG 1>/dev/null 2>&1 if [ "$?" != "0" ] then echo "" echo "Changelist No. "$CHG" is not exist. Exit..." echo "" exit 1 fi ISSUBMITTED=`p4 describe $CHG | /usr/bin/head -1 | awk '{print $NF}'` if [ "$ISSUBMITTED" = "*pending*" ] then echo "" echo "Changelist No. "$CHG" is still pending. Exit..." echo "" exit 1 fi ## Create new pending changelist p4 change -o $CHG | sed 's/'$CHG'/new/' | p4 change -i > $$.newchg NEWCHG=`awk '{print $2}' $$.newchg` for i in `p4 describe -s $CHG | grep "^... //" | awk -F# '{print $1}' | sed 's/... //'` do echo "" echo "" PREVREV=`p4 describe -s $CHG | grep $i | awk -F# '{print $2}' | awk '{print $1-1}'` p4 sync $i#$PREVREV if [ "$PREVREV" = "0" ] then p4 sync $i p4 delete -c $NEWCHG $i else p4 edit -c $NEWCHG $i p4 sync $i p4 resolve -ay -af $i fi done echo "" echo "Press any key to continue" read ANS p4 submit -c $NEWCHG rm -f $$.* exit 0