#!/usr/bin/env bash

## TO MAKE THIS RUN YOUR CUSTOM COMPILED SVN, two simple options:
## 1. Adjust your PATH to point at your custom installed location:
##      export PATH="$HOME/prefix/svn_trunk/bin:$PATH"
## OR
## 2. Uncomment the four lines below to use aliases into your
##    built source tree. The next line is the only line you should
##    need to adjust.
# SVNDIR=/path/to/built_subversion_source_tree
# function svn() { "$SVNDIR/subversion/svn/svn" "$@"; }
# function svnserve() { "$SVNDIR/subversion/svnserve/svnserve" "$@"; }
# function svnadmin() { "$SVNDIR/subversion/svnadmin/svnadmin" "$@"; }

set -e

svn --version

# current path points at Subversion 1.7.x. Change that to 1.6.x:
OLD_PATH="$PATH"
export PATH="$HOME/pat/1.6.17/prefix/bin:$OLD_PATH"
svn --version | grep version


BASE="$(mktemp -d "/tmp/$(basename "$0").XXX")"
echo "BASE = $BASE"
REPOS="$BASE/repos"
WC="$BASE/wc"
URL="file://$REPOS"
svnadmin create "$REPOS"

# enable all revprop changes
cat > "$REPOS/hooks/pre-revprop-change" <<EOF
#!/usr/bin/env sh
exit 0
EOF
chmod a+x "$REPOS/hooks/pre-revprop-change"


set +e
set -x

## ACTUAL TEST

# using Subversion 1.6.x
svn --version | grep version

svn co -q "$URL" "$WC"
cd "$WC"

echo a > a
mkdir B
echo b > B/b
mkdir C
echo c > C/c
svn add a B C
svn ps svn:externals "^/C XC" B
svn ps svn:externals "^/B XB" .
svn ci -mm

svn up

# back to using Subversion 1.7.x
set +x
export PATH="$OLD_PATH"
set -x
svn --version | grep version

svn upgrade

ls -a XB/XC/

## END
set +x
echo "BASE = $BASE"
