Support reverse patching in merge-to-branch.sh

R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9839056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
danno@chromium.org 2012-03-26 11:35:17 +00:00
parent d9936b4546
commit 924b567382
2 changed files with 10 additions and 3 deletions

View File

@ -175,7 +175,7 @@ the uploaded CL."
# Takes a file containing the patch to apply as first argument.
apply_patch() {
patch -p1 < "$1" > "$PATCH_OUTPUT_FILE" || \
patch $REVERSE_PATCH -p1 < "$1" > "$PATCH_OUTPUT_FILE" || \
{ cat "$PATCH_OUTPUT_FILE" && die "Applying the patch failed."; }
tee < "$PATCH_OUTPUT_FILE" >(awk '{print $NF}' >> "$TOUCHED_FILES_FILE")
rm "$PATCH_OUTPUT_FILE"

View File

@ -49,6 +49,7 @@ OPTIONS:
-h Show this message
-s Specify the step where to start work. Default: 0.
-p Specify a patch file to apply as part of the merge
-r Reverse specified patches
EOF
}
@ -68,7 +69,7 @@ restore_patch_commit_hashes_if_unset() {
########## Option parsing
while getopts ":hs:fp:" OPTION ; do
while getopts ":hs:fp:r" OPTION ; do
case $OPTION in
h) usage
exit 0
@ -77,6 +78,8 @@ while getopts ":hs:fp:" OPTION ; do
;;
f) rm -f "$ALREADY_MERGING_SENTINEL_FILE"
;;
r) REVERSE_PATCH="--reverse"
;;
s) START_STEP=$OPTARG
;;
?) echo "Illegal option: -$OPTARG"
@ -133,9 +136,13 @@ revisions associated with the patches."
done
if [ -z "$REVISION_LIST" ] ; then
NEW_COMMIT_MSG="Applied patch to $MERGE_TO_BRANCH branch."
else
if [ -n "$REVERSE_PATCH" ] ; then
NEW_COMMIT_MSG="Rollback of$REVISION_LIST in $MERGE_TO_BRANCH branch."
else
NEW_COMMIT_MSG="Merged$REVISION_LIST into $MERGE_TO_BRANCH branch."
fi;
fi;
echo "$NEW_COMMIT_MSG" > $COMMITMSG_FILE
echo "" >> $COMMITMSG_FILE