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 15set -e 16 17release="" 18rc="" 19rebranch="no" 20 21base_url="https://llvm.org/svn/llvm-project" 22 23function 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 33function 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 50function 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 65while [ $# -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 92done 93 94if [ "x$release" = "x" ]; then 95 echo "error: need to specify a release version" 96 echo 97 usage 98 exit 1 99fi 100 101release=`echo $release | sed -e 's,\.,,g'` 102 103if [ "x$rc" = "x" ]; then 104 tag_version 105else 106 tag_release_candidate 107fi 108 109exit 1 110