blob: cc3cda9d92f61c1ebbd8b72b1af1e87fdb6be6a6 [file] [log] [blame]
Bill Wendling90f98e72011-10-16 01:54:03 +00001#!/bin/sh
2#===-- merge.sh - Test the LLVM release candidates -------------------------===#
3#
4# The LLVM Compiler Infrastructure
5#
6# This file is distributed under the University of Illinois Open Source
7# License.
8#
9#===------------------------------------------------------------------------===#
10#
11# Merge a revision into a project.
12#
13#===------------------------------------------------------------------------===#
14
15set -e
16
17rev=""
18proj=""
Hans Wennborg9da51802015-08-04 00:47:58 +000019revert="no"
Bill Wendling90f98e72011-10-16 01:54:03 +000020
Dimitry Andric96ace112016-01-13 19:48:50 +000021usage() {
Bill Wendling90f98e72011-10-16 01:54:03 +000022 echo "usage: `basename $0` [OPTIONS]"
23 echo " -proj PROJECT The project to merge the result into"
24 echo " -rev NUM The revision to merge into the project"
Hans Wennborg9da51802015-08-04 00:47:58 +000025 echo " -revert Revert rather than merge the commit"
Bill Wendling90f98e72011-10-16 01:54:03 +000026}
27
28while [ $# -gt 0 ]; do
29 case $1 in
30 -rev | --rev | -r )
31 shift
32 rev=$1
33 ;;
34 -proj | --proj | -project | --project | -p )
35 shift
36 proj=$1
37 ;;
38 -h | -help | --help )
39 usage
40 ;;
Hans Wennborg9da51802015-08-04 00:47:58 +000041 -revert | --revert )
42 revert="yes"
43 ;;
Bill Wendling90f98e72011-10-16 01:54:03 +000044 * )
45 echo "unknown option: $1"
46 echo ""
47 usage
48 exit 1
49 ;;
50 esac
51 shift
52done
53
54if [ "x$rev" = "x" -o "x$proj" = "x" ]; then
55 echo "error: need to specify project and revision"
56 echo
57 usage
58 exit 1
59fi
60
61if ! svn ls http://llvm.org/svn/llvm-project/$proj/trunk > /dev/null 2>&1 ; then
62 echo "error: invalid project: $proj"
63 exit 1
64fi
65
66tempfile=`mktemp /tmp/merge.XXXXXX` || exit 1
67
Hans Wennborg9da51802015-08-04 00:47:58 +000068if [ $revert = "yes" ]; then
69 echo "Reverting r$rev:" > $tempfile
70else
71 echo "Merging r$rev:" > $tempfile
72fi
Bill Wendling90f98e72011-10-16 01:54:03 +000073svn log -c $rev http://llvm.org/svn/llvm-project/$proj/trunk >> $tempfile 2>&1
74
75cd $proj.src
Bill Wendlingef22c602011-10-16 20:59:25 +000076echo "# Updating tree"
77svn up
Hans Wennborg9da51802015-08-04 00:47:58 +000078
79if [ $revert = "yes" ]; then
80 echo "# Reverting r$rev in $proj locally"
81 svn merge -c -$rev . || exit 1
82else
83 echo "# Merging r$rev into $proj locally"
84 svn merge -c $rev https://llvm.org/svn/llvm-project/$proj/trunk . || exit 1
85fi
Hans Wennborg427e1212015-01-13 00:07:31 +000086
87echo
Hans Wennborg9da51802015-08-04 00:47:58 +000088echo "# To commit, run the following in $proj.src/:"
Hans Wennborg427e1212015-01-13 00:07:31 +000089echo svn commit -F $tempfile
90
Bill Wendling90f98e72011-10-16 01:54:03 +000091exit 0