#!/usr/bin/ksh # $HeadURL$ $LastChangedRevision$ PROGNAME=`basename $0` VERSION="UNKNOWN" ACTIONS="add edit rm pset pedit pdel" PROPCMPS="same diff na" svn_create() { typeset REPOS=$1 echo svnadmin create $REPOS } action_add_propcmp_na() { typeset WC=$1 echo touch $WC/addme echo svn add $WC/addme } action_edit_propcmp_na() { typeset WC=$1 echo "date >> $WC/editme" } action_rm_propcmp_na() { typeset WC=$1 echo svn del $WC/deleteme } standard_slew() { typeset WC=$1 echo touch $WC/deleteme echo svn add $WC/deleteme echo touch $WC/editme echo svn add $WC/editme #touch $WC/propme #svn add $WC/propme #svn ps fixedpropname fixedpval $WC/propme #svn ps fixedpropname fixedpval $WC/delpofme } svn_create() { typeset REPOS=$1 echo svn create $REPOS } svn_ci() { typeset WC=$1 echo svn commit -m "" $WC } svn_co() { typeset REPOS=$1 typeset WC=$2 echo svn co file://$REPOS $WC } TMP_DIR=/var/tmp/$PROGNAME.$$ mkdir $TMP_DIR for ACTION1 in $ACTIONS; do for ACTION2 in $ACTIONS; do for PROPCMP in $PROPCMPS; do # Don't do same test twice (once with actions applied 1 way round and 1 with # same actions applied other way round). [ `perl -e 'printf "%d\n", ($ARGV[0] cmp $ARGV[1])'` = -1 ] && continue # Don't do tests which relate to same or different properties if the # actions are not both property-related actions. [ $PROPCMP = na -a \( $ACTION1 = add -o $ACTION1 = edit -o $ACTION1 = rm \) -a \( $ACTION2 = add -o $ACTION2 = edit -o $ACTION2 = rm \) ] && continue # create a new repository and populate it with necessary files svn_create $REPOS svn_co $REPOS $TMP_WC standard_slew svn_ci $TMP_WC echo rm -fr $REPOS svn_co $REPOS $WC1 svn_co $REPOS $WC2 echo "first WC committed after $ACTION1, second WC committed after $ACTION2 ..." action_${ACTION1}_propcmp_${PROPCMP} $WC1 action_${ACTION2}_propcmp_${PROPCMP} $WC2 svn_ci $WC1 # here's where any interesting problems might occur svn_ci $WC2 echo rm -fr $WC1 echo rm -fr $WC2 echo rm -fr $REPOS done done done