Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- git-pull.sh | 65 ++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/git-pull.sh b/git-pull.sh index d4e25f1..3dfd856 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -57,16 +57,11 @@ then mode=$(git config pull.mode) fi case "$mode" in -merge) - rebase="false" - ;; -rebase) - rebase="true" +merge|rebase|'') ;; rebase-preserve) - rebase="preserve" - ;; -'') + mode="rebase" + rebase_args="--preserve-merges" ;; *) echo "Invalid value for 'mode'" @@ -74,7 +69,8 @@ rebase-preserve) exit 1 ;; esac -if test -z "$rebase" + +if test -z "$mode" then rebase=$(bool_or_string_config branch.$curr_branch_short.rebase) if test -z "$rebase" @@ -153,10 +149,10 @@ do rebase="${1#*=}" ;; -r|--r|--re|--reb|--reba|--rebas|--rebase) - rebase=true + mode=rebase ;; --no-r|--no-re|--no-reb|--no-reba|--no-rebas|--no-rebase) - rebase=false + mode= ;; --recurse-submodules) recurse_submodules=--recurse-submodules @@ -187,19 +183,26 @@ do shift done -case "$rebase" in -preserve) - rebase=true - rebase_args=--preserve-merges - ;; -true|false|'') - ;; -*) - echo "Invalid value for --rebase, should be true, false, or preserve" - usage - exit 1 - ;; -esac +if test -n "$rebase" +then + case "$rebase" in + true) + mode="rebase" + ;; + false) + mode="merge" + ;; + preserve) + mode="rebase" + rebase_args=--preserve-merges + ;; + *) + echo "Invalid value for --rebase, should be true, false, or preserve" + usage + exit 1 + ;; + esac +fi error_on_no_merge_candidates () { exec >&2 @@ -213,7 +216,7 @@ error_on_no_merge_candidates () { esac done - if test true = "$rebase" + if test "$mode" = rebase then op_type=rebase op_prep=against @@ -226,7 +229,7 @@ error_on_no_merge_candidates () { remote=$(git config "branch.$curr_branch_short.remote") if [ $# -gt 1 ]; then - if [ "$rebase" = true ]; then + if [ "$mode" = rebase ]; then printf "There is no candidate for rebasing against " else printf "There are no candidates for merging " @@ -249,7 +252,7 @@ error_on_no_merge_candidates () { exit 1 } -test true = "$rebase" && { +test "$mode" = rebase && { if ! git rev-parse -q --verify HEAD >/dev/null then # On an unborn branch @@ -306,7 +309,7 @@ case "$merge_head" in then die "$(gettext "Cannot merge multiple branches into empty head")" fi - if test true = "$rebase" + if test "$mode" = rebase then die "$(gettext "Cannot rebase onto multiple branches")" fi @@ -327,7 +330,7 @@ then exit fi -if test true = "$rebase" +if test "$mode" = rebase then o=$(git show-branch --merge-base $curr_branch $merge_head $oldremoteref) if test "$oldremoteref" = "$o" @@ -337,8 +340,8 @@ then fi merge_name=$(git fmt-merge-msg $log_arg <"$GIT_DIR/FETCH_HEAD") || exit -case "$rebase" in -true) +case "$mode" in +rebase) eval="git-rebase $diffstat $strategy_args $merge_args $rebase_args $verbosity" eval="$eval --onto $merge_head ${oldremoteref:-$merge_head}" ;; -- 1.9.2+fc1.3.gade8541 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html