From 8a8f49d987967a1b3f15bfb80274acda25ce1859 Mon Sep 17 00:00:00 2001 From: Cheng Pan Date: Thu, 14 Oct 2021 13:53:09 +0800 Subject: [PATCH] [KYUUBI #1233] Add checkout_pr.sh script ### _Why are the changes needed?_ A convenient tool for checkout PR to local branch. ### _How was this patch tested?_ - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [ ] Add screenshots for manual tests if appropriate - [ ] [Run test](https://kyuubi.readthedocs.io/en/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes #1233 from pan3793/pr. Closes #1233 97489300 [Cheng Pan] Add checkout_pr.sh script Authored-by: Cheng Pan Signed-off-by: Cheng Pan --- dev/checkout_pr.sh | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 dev/checkout_pr.sh diff --git a/dev/checkout_pr.sh b/dev/checkout_pr.sh new file mode 100755 index 000000000..082b4e920 --- /dev/null +++ b/dev/checkout_pr.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +set -o pipefail +set -e +set -x + +function usage { + echo "Usage: $(basename "${0}") [-f] " 2>&1 + echo ' -f force overwrite of local branch (default: fail if exists)' + exit 1 +} + +if [[ ${#} -eq 0 ]]; then + usage +fi + +FORCE="" +while getopts ":f" arg; do + case "${arg}" in + f) + FORCE="--force" + ;; + ?) + usage + ;; + esac +done +shift "$(($OPTIND -1))" + +PR_NUM=$1 + +git fetch apache pull/${PR_NUM}/head:PR_${PR_NUM} ${FORCE} +git checkout PR_${PR_NUM}