Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: tools/merge-to-branch.sh

Issue 9463041: Refactored push-to-trunk.sh and merge-to-branch.sh. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: fixes for push-to-trunk.sh Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/common-includes.sh ('k') | tools/push-to-trunk.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # Copyright 2012 the V8 project authors. All rights reserved. 2 # Copyright 2012 the V8 project authors. All rights reserved.
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following 10 # copyright notice, this list of conditions and the following
(...skipping 11 matching lines...) Expand all
22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 28
29 ########## Global variable definitions 29 ########## Global variable definitions
30 30
31 BRANCHNAME=prepare-merge 31 BRANCHNAME=prepare-merge
32 VERSION_FILE="src/version.cc"
33 PERSISTFILE_BASENAME=/tmp/v8-merge-to-branch-tempfile 32 PERSISTFILE_BASENAME=/tmp/v8-merge-to-branch-tempfile
34 ALREADY_MERGING_SENTINEL_FILE="$PERSISTFILE_BASENAME-already-merging" 33 ALREADY_MERGING_SENTINEL_FILE="$PERSISTFILE_BASENAME-already-merging"
35 CHANGELOG_ENTRY_FILE="$PERSISTFILE_BASENAME-changelog-entry" 34 COMMIT_HASHES_FILE="$PERSISTFILE_BASENAME-PATCH_COMMIT_HASHES"
36 PATCH_FILE="$PERSISTFILE_BASENAME-patch" 35 TEMPORARY_PATCH_FILE="$PERSISTFILE_BASENAME-temporary-patch"
37 COMMITMSG_FILE="$PERSISTFILE_BASENAME-commitmsg" 36
38 COMMITMSG_FILE_COPY="$PERSISTFILE_BASENAME-commitmsg-copy" 37 ########## Function definitions
39 TOUCHED_FILES_FILE="$PERSISTFILE_BASENAME-touched-files" 38
40 TRUNK_REVISION_FILE="$PERSISTFILE_BASENAME-trunkrevision" 39 source $(dirname $BASH_SOURCE)/common-includes.sh
41 START_STEP=0
42 CURRENT_STEP=0
43 40
44 usage() { 41 usage() {
45 cat << EOF 42 cat << EOF
46 usage: $0 [OPTIONS]... [BRANCH] [REVISION]... 43 usage: $0 [OPTIONS]... [BRANCH] [REVISION]...
47 44
48 Performs the necessary steps to merge revisions from bleeding_edge 45 Performs the necessary steps to merge revisions from bleeding_edge
49 to other branches, including trunk. 46 to other branches, including trunk.
50 47
51 OPTIONS: 48 OPTIONS:
52 -h Show this message 49 -h Show this message
53 -s Specify the step where to start work. Default: 0. 50 -s Specify the step where to start work. Default: 0.
54 EOF 51 EOF
55 } 52 }
56 53
57 ########## Function definitions
58
59 die() {
60 [[ -n "$1" ]] && echo "Error: $1"
61 echo "Exiting."
62 exit 1
63 }
64
65 confirm() {
66 echo -n "$1 [Y/n] "
67 read ANSWER
68 if [[ -z "$ANSWER" || "$ANSWER" == "Y" || "$ANSWER" == "y" ]] ; then
69 return 0
70 else
71 return 1
72 fi
73 }
74
75 delete_branch() {
76 local MATCH=$(git branch | grep $1 | awk '{print $NF}' )
77 if [ "$MATCH" == "$1" ] ; then
78 confirm "Branch $1 exists, do you want to delete it?"
79 if [ $? -eq 0 ] ; then
80 git branch -D $1 || die "Deleting branch '$1' failed."
81 echo "Branch $1 deleted."
82 else
83 die "Can't continue. Please delete branch $1 and try again."
84 fi
85 fi
86 }
87
88 # Persist and restore variables to support canceling/resuming execution
89 # of this script.
90 persist() {
91 local VARNAME=$1
92 local FILE="$PERSISTFILE_BASENAME-$VARNAME"
93 echo "${!VARNAME}" > $FILE
94 }
95
96 restore() {
97 local VARNAME=$1
98 local FILE="$PERSISTFILE_BASENAME-$VARNAME"
99 local VALUE="$(cat $FILE)"
100 eval "$VARNAME=\"$VALUE\""
101 }
102
103 restore_if_unset() {
104 local VARNAME=$1
105 [[ -z "${!VARNAME}" ]] && restore "$VARNAME"
106 [[ -z "${!VARNAME}" ]] && die "Variable '$VARNAME' could not be restored."
107 }
108
109 persist_patch_commit_hashes() { 54 persist_patch_commit_hashes() {
110 local FILE="$PERSISTFILE_BASENAME-PATCH_COMMIT_HASHES" 55 echo "PATCH_COMMIT_HASHES=( ${PATCH_COMMIT_HASHES[@]} )" > $COMMIT_HASHES_FILE
111 echo "PATCH_COMMIT_HASHES=( ${PATCH_COMMIT_HASHES[@]} )" > $FILE
112 } 56 }
113 57
114 restore_patch_commit_hashes() { 58 restore_patch_commit_hashes() {
115 local FILE="$PERSISTFILE_BASENAME-PATCH_COMMIT_HASHES" 59 source $COMMIT_HASHES_FILE
116 source $FILE
117 } 60 }
118 61
119 restore_patch_commit_hashes_if_unset() { 62 restore_patch_commit_hashes_if_unset() {
120 [[ "${#PATCH_COMMIT_HASHES[@]}" == 0 ]] && restore_patch_commit_hashes 63 [[ "${#PATCH_COMMIT_HASHES[@]}" == 0 ]] && restore_patch_commit_hashes
121 [[ "${#PATCH_COMMIT_HASHES[@]}" == 0 ]] && \ 64 [[ "${#PATCH_COMMIT_HASHES[@]}" == 0 ]] && \
122 die "Variable PATCH_COMMIT_HASHES could not be restored." 65 die "Variable PATCH_COMMIT_HASHES could not be restored."
123 } 66 }
124 67
125 ########## Option parsing 68 ########## Option parsing
126 69
(...skipping 15 matching lines...) Expand all
142 let OPTION_COUNT=$OPTIND-1 85 let OPTION_COUNT=$OPTIND-1
143 shift $OPTION_COUNT 86 shift $OPTION_COUNT
144 87
145 ########## Regular workflow 88 ########## Regular workflow
146 89
147 # If there is a merge in progress, abort. 90 # If there is a merge in progress, abort.
148 [[ -e "$ALREADY_MERGING_SENTINEL_FILE" ]] && [[ -z "$START_STEP" ]] \ 91 [[ -e "$ALREADY_MERGING_SENTINEL_FILE" ]] && [[ -z "$START_STEP" ]] \
149 && die "A merge is already in progress" 92 && die "A merge is already in progress"
150 touch "$ALREADY_MERGING_SENTINEL_FILE" 93 touch "$ALREADY_MERGING_SENTINEL_FILE"
151 94
152 # Cancel if this is not a git checkout. 95 initial_environment_checks
153 [[ -d .git ]] \
154 || die "This is not a git checkout, this script won't work for you."
155
156 # Cancel if EDITOR is unset or not executable.
157 [[ -n "$EDITOR" && -x "$(which $EDITOR)" ]] \
158 || die "Please set your EDITOR environment variable, you'll need it."
159 96
160 if [ $START_STEP -le $CURRENT_STEP ] ; then 97 if [ $START_STEP -le $CURRENT_STEP ] ; then
98 echo ">>> Step $CURRENT_STEP: Preparation"
161 MERGE_TO_BRANCH=$1 99 MERGE_TO_BRANCH=$1
162 [[ -n "$MERGE_TO_BRANCH" ]] \ 100 [[ -n "$MERGE_TO_BRANCH" ]] || die "Please specify a branch to merge to"
163 || die "Please specify a branch to merge to"
164 shift 101 shift
165 persist "MERGE_TO_BRANCH" 102 persist "MERGE_TO_BRANCH"
166 103 common_prepare
167 echo ">>> Step $CURRENT_STEP: Preparation"
168 # Check for a clean workdir.
169 [[ -z "$(git status -s -uno)" ]] \
170 || die "Workspace is not clean. Please commit or undo your changes."
171
172 # Persist current branch.
173 CURRENT_BRANCH=$(git status -s -b -uno | grep "^##" | awk '{print $2}')
174 persist "CURRENT_BRANCH"
175 delete_branch $BRANCHNAME
176 fi 104 fi
177 105
178 let CURRENT_STEP+=1 106 let CURRENT_STEP+=1
179 if [ $START_STEP -le $CURRENT_STEP ] ; then 107 if [ $START_STEP -le $CURRENT_STEP ] ; then
180 echo ">>> Step $CURRENT_STEP: Fetch unfetched revisions." 108 echo ">>> Step $CURRENT_STEP: Create a fresh branch for the patch."
181 git svn fetch || die "'git svn fetch' failed."
182 fi
183
184 let CURRENT_STEP+=1
185 if [ $START_STEP -le $CURRENT_STEP ] ; then
186 restore_if_unset "MERGE_TO_BRANCH" 109 restore_if_unset "MERGE_TO_BRANCH"
187 echo ">>> Step $CURRENT_STEP: Create a fresh branch for the patch."
188 git checkout -b $BRANCHNAME svn/$MERGE_TO_BRANCH \ 110 git checkout -b $BRANCHNAME svn/$MERGE_TO_BRANCH \
189 || die "Creating branch $BRANCHNAME failed." 111 || die "Creating branch $BRANCHNAME failed."
190 fi 112 fi
191 113
192 let CURRENT_STEP+=1 114 let CURRENT_STEP+=1
193 if [ $START_STEP -le $CURRENT_STEP ] ; then 115 if [ $START_STEP -le $CURRENT_STEP ] ; then
194 echo ">>> Step $CURRENT_STEP: Find the git \ 116 echo ">>> Step $CURRENT_STEP: Find the git \
195 revisions associated with the patches." 117 revisions associated with the patches."
196 current=0 118 current=0
197 for REVISION in "$@" ; do 119 for REVISION in "$@" ; do
198 NEXT_HASH=$(git svn find-rev "r$REVISION" svn/bleeding_edge) 120 NEXT_HASH=$(git svn find-rev "r$REVISION" svn/bleeding_edge)
199 [[ -n "$NEXT_HASH" ]] \ 121 [[ -n "$NEXT_HASH" ]] \
200 || die "Cannot determine git hash for r$REVISION" 122 || die "Cannot determine git hash for r$REVISION"
201 PATCH_COMMIT_HASHES[$current]="$NEXT_HASH" 123 PATCH_COMMIT_HASHES[$current]="$NEXT_HASH"
202 [[ -n "$NEW_COMMIT_MSG" ]] && NEW_COMMIT_MSG="$NEW_COMMIT_MSG," 124 [[ -n "$NEW_COMMIT_MSG" ]] && NEW_COMMIT_MSG="$NEW_COMMIT_MSG,"
203 NEW_COMMIT_MSG="$NEW_COMMIT_MSG r$REVISION" 125 NEW_COMMIT_MSG="$NEW_COMMIT_MSG r$REVISION"
204 let current+=1 126 let current+=1
205 done 127 done
206 NEW_COMMIT_MSG="Merged$NEW_COMMIT_MSG into $MERGE_TO_BRANCH branch." 128 NEW_COMMIT_MSG="Merged$NEW_COMMIT_MSG into $MERGE_TO_BRANCH branch."
207 129
208 echo "$NEW_COMMIT_MSG" > $COMMITMSG_FILE 130 echo "$NEW_COMMIT_MSG" > $COMMITMSG_FILE
209 echo >> $COMMITMSG_FILE 131 echo "" >> $COMMITMSG_FILE
210 for HASH in ${PATCH_COMMIT_HASHES[@]} ; do 132 for HASH in ${PATCH_COMMIT_HASHES[@]} ; do
211 PATCH_MERGE_DESCRIPTION=$(git log -1 --format=%s $HASH) 133 PATCH_MERGE_DESCRIPTION=$(git log -1 --format=%s $HASH)
212 echo "$PATCH_MERGE_DESCRIPTION" >> $COMMITMSG_FILE 134 echo "$PATCH_MERGE_DESCRIPTION" >> $COMMITMSG_FILE
213 echo >> $COMMITMSG_FILE 135 echo "" >> $COMMITMSG_FILE
214 done 136 done
215 for HASH in ${PATCH_COMMIT_HASHES[@]} ; do 137 for HASH in ${PATCH_COMMIT_HASHES[@]} ; do
216 BUG=$(git log -1 $HASH | grep "BUG=" | awk -F '=' '{print $NF}') 138 BUG=$(git log -1 $HASH | grep "BUG=" | awk -F '=' '{print $NF}')
217 if [ $BUG ] ; then 139 if [ -n "$BUG" ] ; then
218 if [ "$BUG_AGGREGATE" ] ; then 140 [[ -n "$BUG_AGGREGATE" ]] && BUG_AGGREGATE="$BUG_AGGREGATE,"
219 BUG_AGGREGATE="$BUG_AGGREGATE,"
220 fi
221 BUG_AGGREGATE="$BUG_AGGREGATE$BUG" 141 BUG_AGGREGATE="$BUG_AGGREGATE$BUG"
222 fi 142 fi
223 done 143 done
224 if [ "$BUG_AGGREGATE" ] ; then 144 if [ -n "$BUG_AGGREGATE" ] ; then
225 echo "BUG=$BUG_AGGREGATE" >> $COMMITMSG_FILE 145 echo "BUG=$BUG_AGGREGATE" >> $COMMITMSG_FILE
226 fi 146 fi
227 persist "NEW_COMMIT_MSG" 147 persist "NEW_COMMIT_MSG"
228 persist_patch_commit_hashes 148 persist_patch_commit_hashes
229 fi 149 fi
230 150
231 let CURRENT_STEP+=1 151 let CURRENT_STEP+=1
232 if [ $START_STEP -le $CURRENT_STEP ] ; then 152 if [ $START_STEP -le $CURRENT_STEP ] ; then
153 echo ">>> Step $CURRENT_STEP: Apply patches for selected revisions."
233 restore_if_unset "MERGE_TO_BRANCH" 154 restore_if_unset "MERGE_TO_BRANCH"
234 restore_patch_commit_hashes_if_unset "PATCH_COMMIT_HASHES" 155 restore_patch_commit_hashes_if_unset "PATCH_COMMIT_HASHES"
235 echo "${PATCH_COMMIT_HASHES[@]}"
236 echo ">>> Step $CURRENT_STEP: Apply patches for selected revisions."
237 rm -f "$TOUCHED_FILES_FILE" 156 rm -f "$TOUCHED_FILES_FILE"
238 for HASH in ${PATCH_COMMIT_HASHES[@]} ; do 157 for HASH in ${PATCH_COMMIT_HASHES[@]} ; do
239 git log -1 -p $HASH | patch -p1 \ 158 echo "Applying patch for $HASH to $MERGE_TO_BRANCH..."
240 | tee >(awk '{print $NF}' >> "$TOUCHED_FILES_FILE") 159 git log -1 -p $HASH > "$TEMPORARY_PATCH_FILE"
241 [[ $? -eq 0 ]] \ 160 apply_patch "$TEMPORARY_PATCH_FILE"
242 || die "Cannot apply the patch for $HASH to $MERGE_TO_BRANCH."
243 done 161 done
244 # Stage added and modified files. 162 stage_files
245 TOUCHED_FILES=$(cat "$TOUCHED_FILES_FILE")
246 for FILE in $TOUCHED_FILES ; do
247 git add "$FILE"
248 done
249 # Stage deleted files.
250 DELETED_FILES=$(git status -s -uno --porcelain | grep "^ D" \
251 | awk '{print $NF}')
252 for FILE in $DELETED_FILES ; do
253 git rm "$FILE"
254 done
255 rm -f "$TOUCHED_FILES_FILE"
256 fi 163 fi
257 164
258 let CURRENT_STEP+=1 165 let CURRENT_STEP+=1
259 if [ $START_STEP -le $CURRENT_STEP ] ; then 166 if [ $START_STEP -le $CURRENT_STEP ] ; then
260 echo ">>> Step $CURRENT_STEP: Prepare version.cc" 167 echo ">>> Step $CURRENT_STEP: Prepare $VERSION_FILE."
261 # These version numbers are used again for creating the tag 168 # These version numbers are used again for creating the tag
262 PATCH=$(grep "#define PATCH_LEVEL" "$VERSION_FILE" | awk '{print $NF}') 169 read_and_persist_version
263 persist "PATCH"
264 fi 170 fi
265 171
266 let CURRENT_STEP+=1 172 let CURRENT_STEP+=1
267 if [ $START_STEP -le $CURRENT_STEP ] ; then 173 if [ $START_STEP -le $CURRENT_STEP ] ; then
268 echo ">>> Step $CURRENT_STEP: Increment version number." 174 echo ">>> Step $CURRENT_STEP: Increment version number."
269 restore_if_unset "PATCH" 175 restore_if_unset "PATCH"
270 NEWPATCH=$(($PATCH + 1)) 176 NEWPATCH=$(($PATCH + 1))
271 confirm "Automatically increment PATCH_LEVEL? (Saying 'n' will fire up \ 177 confirm "Automatically increment PATCH_LEVEL? (Saying 'n' will fire up \
272 your EDITOR on $VERSION_FILE so you can make arbitrary changes. When \ 178 your EDITOR on $VERSION_FILE so you can make arbitrary changes. When \
273 you're done, save the file and exit your EDITOR.)" 179 you're done, save the file and exit your EDITOR.)"
274 if [ $? -eq 0 ] ; then 180 if [ $? -eq 0 ] ; then
275 sed -e "/#define PATCH_LEVEL/s/[0-9]*$/$NEWPATCH/" \ 181 sed -e "/#define PATCH_LEVEL/s/[0-9]*$/$NEWPATCH/" \
276 -i "$VERSION_FILE" 182 -i "$VERSION_FILE"
277 else 183 else
278 $EDITOR "$VERSION_FILE" 184 $EDITOR "$VERSION_FILE"
279 fi 185 fi
280 NEWMAJOR=$(grep "#define MAJOR_VERSION" "$VERSION_FILE" | awk '{print $NF}') 186 read_and_persist_version "NEW"
281 persist "NEWMAJOR"
282 NEWMINOR=$(grep "#define MINOR_VERSION" "$VERSION_FILE" | awk '{print $NF}')
283 persist "NEWMINOR"
284 NEWBUILD=$(grep "#define BUILD_NUMBER" "$VERSION_FILE" | awk '{print $NF}')
285 persist "NEWBUILD"
286 NEWPATCH=$(grep "#define PATCH_LEVEL" "$VERSION_FILE" | awk '{print $NF}')
287 persist "NEWPATCH"
288 fi 187 fi
289 188
290 let CURRENT_STEP+=1 189 let CURRENT_STEP+=1
291 if [ $START_STEP -le $CURRENT_STEP ] ; then 190 if [ $START_STEP -le $CURRENT_STEP ] ; then
292 echo ">>> Step $CURRENT_STEP: Commit to local branch." 191 echo ">>> Step $CURRENT_STEP: Commit to local branch."
293 git commit -a -F "$COMMITMSG_FILE" \ 192 git commit -a -F "$COMMITMSG_FILE" \
294 || die "'git commit -a' failed." 193 || die "'git commit -a' failed."
295 fi 194 fi
296 195
297 let CURRENT_STEP+=1 196 upload_step
298 if [ $START_STEP -le $CURRENT_STEP ] ; then
299 echo ">>> Step $CURRENT_STEP: Upload for code review."
300 echo -n "Please enter the email address of a V8 reviewer for your patch: "
301 read REVIEWER
302 git cl upload -r "$REVIEWER" --send-mail \
303 || die "'git cl upload' failed, please try again."
304 fi
305 197
306 let CURRENT_STEP+=1 198 let CURRENT_STEP+=1
307 if [ $START_STEP -le $CURRENT_STEP ] ; then 199 if [ $START_STEP -le $CURRENT_STEP ] ; then
200 echo ">>> Step $CURRENT_STEP: Commit to the repository."
308 restore_if_unset "MERGE_TO_BRANCH" 201 restore_if_unset "MERGE_TO_BRANCH"
309 git checkout $BRANCHNAME \ 202 git checkout $BRANCHNAME \
310 || die "cannot ensure that the current branch is $BRANCHNAME" 203 || die "cannot ensure that the current branch is $BRANCHNAME"
311 echo ">>> Step $CURRENT_STEP: Commit to the repository." 204 wait_for_lgtm
312 echo "Please wait for an LGTM, then type \"LGTM<Return>\" to commit your \
313 change. (If you need to iterate on the patch or double check that it's \
314 sane, do so in another shell, but remember to not change the headline of \
315 the uploaded CL."
316 unset ANSWER
317 while [ "$ANSWER" != "LGTM" ] ; do
318 [[ -n "$ANSWER" ]] && echo "That was not 'LGTM'."
319 echo -n "> "
320 read ANSWER
321 done
322 git cl dcommit || die "failed to commit to $MERGE_TO_BRANCH" 205 git cl dcommit || die "failed to commit to $MERGE_TO_BRANCH"
323 fi 206 fi
324 207
325 let CURRENT_STEP+=1 208 let CURRENT_STEP+=1
326 if [ $START_STEP -le $CURRENT_STEP ] ; then 209 if [ $START_STEP -le $CURRENT_STEP ] ; then
210 echo ">>> Step $CURRENT_STEP: Determine svn commit revision"
327 restore_if_unset "NEW_COMMIT_MSG" 211 restore_if_unset "NEW_COMMIT_MSG"
328 restore_if_unset "MERGE_TO_BRANCH" 212 restore_if_unset "MERGE_TO_BRANCH"
329 echo ">>> Step $CURRENT_STEP: Determine svn commit revision"
330 git svn fetch || die "'git svn fetch' failed." 213 git svn fetch || die "'git svn fetch' failed."
331 COMMIT_HASH=$(git log -1 --format=%H --grep="$NEW_COMMIT_MSG" \ 214 COMMIT_HASH=$(git log -1 --format=%H --grep="$NEW_COMMIT_MSG" \
332 svn/$MERGE_TO_BRANCH) 215 svn/$MERGE_TO_BRANCH)
333 [[ -z "$COMMIT_HASH" ]] && die "Unable to map git commit to svn revision" 216 [[ -z "$COMMIT_HASH" ]] && die "Unable to map git commit to svn revision"
334 SVN_REVISION=$(git svn find-rev $COMMIT_HASH) 217 SVN_REVISION=$(git svn find-rev $COMMIT_HASH)
335 echo "subversion revision number is r$SVN_REVISION" 218 echo "subversion revision number is r$SVN_REVISION"
336 persist "SVN_REVISION" 219 persist "SVN_REVISION"
337 fi 220 fi
338 221
339 let CURRENT_STEP+=1 222 let CURRENT_STEP+=1
340 if [ $START_STEP -le $CURRENT_STEP ] ; then 223 if [ $START_STEP -le $CURRENT_STEP ] ; then
224 echo ">>> Step $CURRENT_STEP: Create the tag."
341 restore_if_unset "SVN_REVISION" 225 restore_if_unset "SVN_REVISION"
342 restore_if_unset "NEWMAJOR" 226 restore_version_if_unset "NEW"
343 restore_if_unset "NEWMINOR"
344 restore_if_unset "NEWBUILD"
345 restore_if_unset "NEWPATCH"
346 echo ">>> Step $CURRENT_STEP: Create the tag."
347 echo "Creating tag svn/tags/$NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH" 227 echo "Creating tag svn/tags/$NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH"
228 if [ "$MERGE_TO_BRANCH" == "trunk" ] ; then
229 TO_URL="$MERGE_TO_BRANCH"
230 else
231 TO_URL="branches/$MERGE_TO_BRANCH"
232 fi
348 svn copy -r $SVN_REVISION \ 233 svn copy -r $SVN_REVISION \
349 https://v8.googlecode.com/svn/branches/$MERGE_TO_BRANCH \ 234 https://v8.googlecode.com/svn/$TO_URL \
350 https://v8.googlecode.com/svn/tags/$NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH \ 235 https://v8.googlecode.com/svn/tags/$NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH \
351 -m "Tagging version $NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH" 236 -m "Tagging version $NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH"
352 fi 237 fi
353 238
354 let CURRENT_STEP+=1 239 let CURRENT_STEP+=1
355 if [ $START_STEP -le $CURRENT_STEP ] ; then 240 if [ $START_STEP -le $CURRENT_STEP ] ; then
356 echo ">>> Step $CURRENT_STEP: Cleanup." 241 echo ">>> Step $CURRENT_STEP: Cleanup."
357 restore_if_unset "CURRENT_BRANCH" 242 common_cleanup
358 git checkout -f $CURRENT_BRANCH
359 [[ "$BRANCHNAME" != "$CURRENT_BRANCH" ]] && git branch -D $BRANCHNAME
360 rm -f "$ALREADY_MERGING_SENTINEL_FILE"
361 fi 243 fi
OLDNEW
« no previous file with comments | « tools/common-includes.sh ('k') | tools/push-to-trunk.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698