Home | History | Annotate | Download | only in release
      1 #!/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 
     15 set -e
     16 
     17 rev=""
     18 proj=""
     19 
     20 function usage() {
     21     echo "usage: `basename $0` [OPTIONS]"
     22     echo "  -proj PROJECT  The project to merge the result into"
     23     echo "  -rev NUM       The revision to merge into the project"
     24 }
     25 
     26 while [ $# -gt 0 ]; do
     27     case $1 in
     28         -rev | --rev | -r )
     29             shift
     30             rev=$1
     31             ;;
     32         -proj | --proj | -project | --project | -p )
     33             shift
     34             proj=$1
     35             ;;
     36         -h | -help | --help )
     37             usage
     38             ;;
     39         * )
     40             echo "unknown option: $1"
     41             echo ""
     42             usage
     43             exit 1
     44             ;;
     45     esac
     46     shift
     47 done
     48 
     49 if [ "x$rev" = "x" -o "x$proj" = "x" ]; then
     50     echo "error: need to specify project and revision"
     51     echo
     52     usage
     53     exit 1
     54 fi
     55 
     56 if ! svn ls http://llvm.org/svn/llvm-project/$proj/trunk > /dev/null 2>&1 ; then
     57     echo "error: invalid project: $proj"
     58     exit 1
     59 fi
     60 
     61 tempfile=`mktemp /tmp/merge.XXXXXX` || exit 1
     62 
     63 echo "Merging r$rev:" > $tempfile
     64 svn log -c $rev http://llvm.org/svn/llvm-project/$proj/trunk >> $tempfile 2>&1
     65 
     66 cd $proj.src
     67 echo "# Updating tree"
     68 svn up
     69 echo "# Merging r$rev into $proj"
     70 svn merge -c $rev https://llvm.org/svn/llvm-project/$proj/trunk . || exit 1
     71 echo "# Committing changes"
     72 svn commit -F $tempfile || exit 1
     73 rm -f $tempfile
     74 exit 0
     75