1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/utils/release/merge.sh
Hans Wennborg d1d3ea8114 Revert r273099 "If the revision number starts with r, drop it. It will get added back"
This doesn't seem to work with Bash:

$ /work/llvm/utils/release/merge.sh --proj llvm --rev r275870
/work/llvm/utils/release/merge.sh: line 34: ${$1#r}: bad substitution

I get the same error with and without a leading 'r'.

llvm-svn: 275898
2016-07-18 20:06:27 +00:00

102 lines
2.3 KiB
Bash
Executable File

#!/bin/sh
#===-- merge.sh - Test the LLVM release candidates -------------------------===#
#
# The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License.
#
#===------------------------------------------------------------------------===#
#
# Merge a revision into a project.
#
#===------------------------------------------------------------------------===#
set -e
rev=""
proj=""
revert="no"
srcdir=""
usage() {
echo "usage: `basename $0` [OPTIONS]"
echo " -proj PROJECT The project to merge the result into"
echo " -rev NUM The revision to merge into the project"
echo " -revert Revert rather than merge the commit"
echo " -srcdir The root of the project checkout"
}
while [ $# -gt 0 ]; do
case $1 in
-rev | --rev | -r )
shift
rev=$1
;;
-proj | --proj | -project | --project | -p )
shift
proj=$1
;;
--srcdir | -srcdir | -s)
shift
srcdir=$1
;;
-h | -help | --help )
usage
;;
-revert | --revert )
revert="yes"
;;
* )
echo "unknown option: $1"
echo ""
usage
exit 1
;;
esac
shift
done
if [ -z "$srcdir" ]; then
srcdir="$proj.src"
fi
if [ "x$rev" = "x" -o "x$proj" = "x" ]; then
echo "error: need to specify project and revision"
echo
usage
exit 1
fi
if ! svn ls http://llvm.org/svn/llvm-project/$proj/trunk > /dev/null 2>&1 ; then
echo "error: invalid project: $proj"
exit 1
fi
tempfile=`mktemp /tmp/merge.XXXXXX` || exit 1
if [ $revert = "yes" ]; then
echo "Reverting r$rev:" > $tempfile
else
echo "Merging r$rev:" > $tempfile
fi
svn log -c $rev http://llvm.org/svn/llvm-project/$proj/trunk >> $tempfile 2>&1
cd "$srcdir"
echo "# Updating tree"
svn up
if [ $revert = "yes" ]; then
echo "# Reverting r$rev in $proj locally"
svn merge -c -$rev . || exit 1
else
echo "# Merging r$rev into $proj locally"
svn merge -c $rev https://llvm.org/svn/llvm-project/$proj/trunk . || exit 1
fi
echo
echo "# To commit, run the following in $proj.src/:"
echo svn commit -F $tempfile
exit 0