blob: 622595c5135e85e2e161cbfa9cd9d5752ea3a6b8 [file] [log] [blame]
#!/bin/sh
#
# create_wc_for_upgrade.sh : create a working copy for upgrade testing
#
# Subversion is a tool for revision control.
# See http://subversion.apache.org/ for more information.
#
# ====================================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
######################################################################
#
# USAGE:
# $ ./create_wc_for_upgrade.sh /path/to/svn-1.x /tmp/wc-1.x
#
# At this point, the working copy will be constructed for *property*
# testing. Future changes may set up other testing scenarios.
#
# Note that 'svnadmin' must be in PATH
#
if test $# != 2; then
echo "ERROR: not enough parameters"
exit 1
fi
SVN="$1"
WC="$2"
if test -e "${WC}"; then
echo "ERROR: ${WC} exists."
exit 1
fi
# some higgery-jiggery to get to the parent directory in order to create
# the repo as a sibling.
mkdir "${WC}"
cd "${WC}"
cd ..
rmdir "${WC}"
# create a repo that is usable by any SVN. bail out if anything goes wrong.
svnadmin create --pre-1.4-compatible repo
"${SVN}" co file://`pwd`/repo "${WC}"
cd "${WC}" || exit 1
# we need some files with properties for copy sources and for deletions
echo alpha > alpha
echo beta > beta
echo gamma > gamma
echo delta > delta
echo epsilon > epsilon
"${SVN}" add alpha beta gamma delta epsilon
"${SVN}" propset a-prop a-value1 alpha
"${SVN}" propset b-prop b-value1 beta
"${SVN}" propset g-prop g-value1 gamma
"${SVN}" propset d-prop d-value1 delta
"${SVN}" propset e-prop e-value1 epsilon
"${SVN}" commit -m "commit files"
### the code below needs to be rejiggered for svn <= 1.3. revert base is not
### available, so some of the operations are not allowed.
# a file with .base and .revert
"${SVN}" delete alpha
"${SVN}" copy epsilon alpha
### whoops. there is an alpha.working (when using 1.7-dev, tho no ACTUAL_NODE
### row is created).
# a file with just .working
# zeta = epsilon+1
echo zeta > zeta
"${SVN}" add zeta
"${SVN}" propset z-prop z-value zeta
# a file with .base and .working
"${SVN}" propset b-more b-value2 beta
# a file with .base, .revert, and .working
"${SVN}" delete gamma
"${SVN}" copy epsilon gamma
"${SVN}" propset g-more g-value2 gamma
# a file with .revert and .working
"${SVN}" delete delta
echo delta revisited > delta
"${SVN}" add delta
"${SVN}" propset d-more d-value2 delta
# a file with just .revert
"${SVN}" delete epsilon
echo epsilon revisited > epsilon
"${SVN}" add epsilon