HBASE-14871 Allow specifying the base branch for make_patch

This commit is contained in:
Elliott Clark 2015-11-23 16:48:45 -08:00
parent 4a60c25c70
commit 4cc341b9c2
1 changed files with 22 additions and 13 deletions

View File

@ -20,18 +20,22 @@
# Make a patch for the current branch based on its tracking branch # Make a patch for the current branch based on its tracking branch
# Process args # Process args
while getopts "ahd:" opt; do while getopts "ahd:b:" opt; do
case "$opt" in case "$opt" in
a) addendum='-addendum' a) addendum='-addendum'
;; ;;
d) d)
patch_dir=$OPTARG patch_dir=$OPTARG
;; ;;
b)
tracking_branch=$OPTARG
;;
*) *)
echo -e "Usage: $0 [-h] [-a] [-d] <directory> \n\ echo -e "Usage: $0 [-h] [-a] [-d] <directory> \n\
Must be run from within the git branch to make the patch against.\n\ Must be run from within the git branch to make the patch against.\n\
-h - display these instructions.\n\ -h - display these instructions.\n\
-a - Add an 'addendum' prefix to the patch name.\n\ -a - Add an 'addendum' prefix to the patch name.\n\
-b - Specify the base branch to diff from. (defaults to the tracking branch or origin master)\n\
-d - specify a patch directory (defaults to ~/patches/)" -d - specify a patch directory (defaults to ~/patches/)"
exit 0 exit 0
;; ;;
@ -53,7 +57,10 @@ if [ "$git_dirty" -ne 0 ]; then
exit 1 exit 1
fi fi
# Determine the tracking branch # Determine the tracking branch if needed.
# If it was passed in from the command line
# with -b then use dthat no matter what.
if [ ! "$tracking_branch" ]; then
git log -n 1 origin/$branch > /dev/null 2>&1 git log -n 1 origin/$branch > /dev/null 2>&1
status=$? status=$?
if [ "$status" -eq 128 ]; then if [ "$status" -eq 128 ]; then
@ -66,6 +73,8 @@ else
echo "Unknown error: $?" >&2 echo "Unknown error: $?" >&2
exit 1 exit 1
fi fi
fi
# Deal with invalid or missing $patch_dir # Deal with invalid or missing $patch_dir
if [ ! "$patch_dir" ]; then if [ ! "$patch_dir" ]; then