#!/bin/bash

SVN=svn
SVNADMIN=svnadmin

echo "creating a repo, adding, and removing a directory"
${SVNADMIN} create repo
${SVN} co file://`pwd`/repo checkout
mkdir checkout/a
${SVN} add checkout/a
${SVN} commit checkout --message added
${SVN} del checkout/a
${SVN} commit checkout --message removed
rm -rf checkout

echo -e "\nchecking out the most recent version of the repo works"
${SVN} co file://`pwd`/repo checkout
rm -rf checkout

echo -e "\nchecking out the repo version 1 works"
${SVN} co --revision=1 file://`pwd`/repo checkout
rm -rf checkout

echo -e "\nfails to check out directory that existed in version 1"
${SVN} co --revision=1 file://`pwd`/repo/a checkout
rm -rf checkout

echo -e "\nrecreating the directory"
${SVN} co file://`pwd`/repo checkout
mkdir checkout/a
${SVN} add checkout/a
${SVN} commit checkout --message "added again"

echo -e "\nfails to check out directory that existed in version 1"
${SVN} co --revision=1 file://`pwd`/repo/a checkout
rm -rf checkout

echo -e "\ncan check out the current version then \"update\" to the old"
${SVN} co file://`pwd`/repo/a checkout
${SVN} up --revision=1 checkout
rm -rf checkout
