1 #!/bin/sh 2 #===-- tag.sh - Tag 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 # Create branches and release candidates for the LLVM release. 12 # 13 #===------------------------------------------------------------------------===# 14 15 set -e 16 17 release="" 18 rc="" 19 rebranch="no" 20 21 base_url="https://llvm.org/svn/llvm-project" 22 23 function usage() { 24 echo "usage: `basename $0` -release <num> [-rebranch]" 25 echo "usage: `basename $0` -release <num> -rc <num>" 26 echo " " 27 echo " -release <num> The version number of the release" 28 echo " -rc <num> The release candidate number" 29 echo " -rebranch Remove existing branch, if present, before branching" 30 echo " -final Tag final release candidate" 31 } 32 33 function tag_version() { 34 set -x 35 for proj in llvm cfe dragonegg test-suite compiler-rt ; do 36 if svn ls $base_url/$proj/branches/release_$release > /dev/null 2>&1 ; then 37 if [ $rebranch = "no" ]; then 38 continue 39 fi 40 svn remove -m "Removing old release_$release branch for rebranching." \ 41 $base_url/$proj/branches/release_$release 42 fi 43 svn copy -m "Creating release_$release branch" \ 44 $base_url/$proj/trunk \ 45 $base_url/$proj/branches/release_$release 46 done 47 set +x 48 } 49 50 function tag_release_candidate() { 51 set -x 52 for proj in llvm cfe dragonegg test-suite compiler-rt ; do 53 if ! svn ls $base_url/$proj/tags/RELEASE_$release > /dev/null 2>&1 ; then 54 svn mkdir -m "Creating release directory for release_$release." $base_url/$proj/tags/RELEASE_$release 55 fi 56 if ! svn ls $base_url/$proj/tags/RELEASE_$release/$rc > /dev/null 2>&1 ; then 57 svn copy -m "Creating release candidate $rc from release_$release branch" \ 58 $base_url/$proj/branches/release_$release \ 59 $base_url/$proj/tags/RELEASE_$release/$rc 60 fi 61 done 62 set +x 63 } 64 65 while [ $# -gt 0 ]; do 66 case $1 in 67 -release | --release ) 68 shift 69 release=$1 70 ;; 71 -rc | --rc ) 72 shift 73 rc="rc$1" 74 ;; 75 -rebranch | --rebranch ) 76 rebranch="yes" 77 ;; 78 -final | --final ) 79 rc="final" 80 ;; 81 -h | --help | -help ) 82 usage 83 exit 0 84 ;; 85 * ) 86 echo "unknown option: $1" 87 usage 88 exit 1 89 ;; 90 esac 91 shift 92 done 93 94 if [ "x$release" = "x" ]; then 95 echo "error: need to specify a release version" 96 echo 97 usage 98 exit 1 99 fi 100 101 release=`echo $release | sed -e 's,\.,,g'` 102 103 if [ "x$rc" = "x" ]; then 104 tag_version 105 else 106 tag_release_candidate 107 fi 108 109 exit 1 110