1f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling#!/bin/sh 2f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling#===-- merge.sh - Test the LLVM release candidates -------------------------===# 3f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# 4f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# The LLVM Compiler Infrastructure 5f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# 6f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# This file is distributed under the University of Illinois Open Source 7f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# License. 8f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# 9f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling#===------------------------------------------------------------------------===# 10f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# 11f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# Merge a revision into a project. 12f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling# 13f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling#===------------------------------------------------------------------------===# 14f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 15f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingset -e 16f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 17f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingrev="" 18f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingproj="" 19f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 20f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingfunction usage() { 21f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling echo "usage: `basename $0` [OPTIONS]" 22f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling echo " -proj PROJECT The project to merge the result into" 23f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling echo " -rev NUM The revision to merge into the project" 24f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling} 25f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 26f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingwhile [ $# -gt 0 ]; do 27f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling case $1 in 28f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling -rev | --rev | -r ) 29f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling shift 30f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling rev=$1 31f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling ;; 32f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling -proj | --proj | -project | --project | -p ) 33f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling shift 34f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling proj=$1 35f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling ;; 36f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling -h | -help | --help ) 37f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling usage 38f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling ;; 39f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling * ) 40f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling echo "unknown option: $1" 41f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling echo "" 42f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling usage 43f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling exit 1 44f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling ;; 45f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling esac 46f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling shift 47f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingdone 48f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 49f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingif [ "x$rev" = "x" -o "x$proj" = "x" ]; then 50f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling echo "error: need to specify project and revision" 51f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling echo 52f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling usage 53f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling exit 1 54f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingfi 55f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 56f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingif ! svn ls http://llvm.org/svn/llvm-project/$proj/trunk > /dev/null 2>&1 ; then 57f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling echo "error: invalid project: $proj" 58f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling exit 1 59f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingfi 60f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 61f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingtempfile=`mktemp /tmp/merge.XXXXXX` || exit 1 62f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 63f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingecho "Merging r$rev:" > $tempfile 64f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingsvn log -c $rev http://llvm.org/svn/llvm-project/$proj/trunk >> $tempfile 2>&1 65f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendling 66f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingcd $proj.src 67eeb58a7e6be5de3f792fc074b5efeb926d0d3e15Bill Wendlingecho "# Updating tree" 68eeb58a7e6be5de3f792fc074b5efeb926d0d3e15Bill Wendlingsvn up 69f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingecho "# Merging r$rev into $proj" 70f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingsvn merge -c $rev https://llvm.org/svn/llvm-project/$proj/trunk . || exit 1 71f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingecho "# Committing changes" 72f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingsvn commit -F $tempfile || exit 1 73f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingrm -f $tempfile 74f4a4e3ae740979ea7877f55e34cdb5abac9cbe33Bill Wendlingexit 0 75