#!/bin/sh

set -e

cwd=`pwd`
scratch_area=`basename $0 .sh`
repos=$scratch_area/repos
trunk=$scratch_area/trunk
branch=$scratch_area/branch
trunk_url=file:///$cwd/$repos/trunk
branch_url=file:///$cwd/$repos/branch

set -x

rm -rf $scratch_area
mkdir -p $scratch_area

mkdir -p $trunk
echo alpha > $trunk/alpha

svnadmin create $cwd/$repos
svn import $trunk $trunk_url -m "importing project tree" # r1
rm -rf $trunk
svn checkout $trunk_url $trunk
svn checkout $trunk_url ${trunk}A
svn checkout $trunk_url ${trunk}B

echo change1 > $trunk/alpha
svn ci $trunk -m "revision A: file xxx is changed" # r2
svn up ${trunk}B # user B updates in [A, A+n)
echo change2 > $trunk/alpha
svn ci $trunk -m "revision A+n: file xxx is changed again" # r3
svn up ${trunk}A # user A updates between A+n and A+n+m
echo change1 > $trunk/alpha # change back to content of r2
svn ci $trunk -m "revision A+n+m: file xxx is changed and takes the same content as back in revision A" #r4
svn up ${trunk}B # user B updates after A+n+m

svn status -v ${trunk}A
svn status -v ${trunk}B
