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