From: Junio C Hamano Date: Wed, 18 Aug 2010 19:29:47 +0000 (-0700) Subject: Merge branch 'ml/rebase-x-strategy' X-Git-Tag: v1.7.3-rc0~67 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/06d11b2e8d9d78d01212024f0f410e4193cbb5bd?ds=inline;hp=-c Merge branch 'ml/rebase-x-strategy' * ml/rebase-x-strategy: rebase: support -X to pass through strategy options --- 06d11b2e8d9d78d01212024f0f410e4193cbb5bd diff --combined git-rebase.sh index 1b9ea48cd7,7d1c5c3861..7508463b30 --- a/git-rebase.sh +++ b/git-rebase.sh @@@ -44,6 -44,7 +44,7 @@@ To restore the original branch and sto " unset newbase strategy=recursive + strategy_opts= do_merge= dotest="$GIT_DIR"/rebase-merge prec=4 @@@ -112,7 -113,7 +113,7 @@@ call_merge () then export GIT_MERGE_VERBOSITY=1 fi - git-merge-$strategy "$cmt^" -- "$hd" "$cmt" + eval 'git-merge-$strategy' $strategy_opts '"$cmt^" -- "$hd" "$cmt"' rv=$? case "$rv" in 0) @@@ -208,7 -209,6 +209,7 @@@ d test -d "$dotest" -o -d "$GIT_DIR"/rebase-apply || die "No rebase in progress?" + git update-index --ignore-submodules --refresh && git diff-files --quiet --ignore-submodules || { echo "You must edit all merge conflicts and then" echo "mark them as resolved using git add" @@@ -294,6 -294,27 +295,27 @@@ -M|-m|--m|--me|--mer|--merg|--merge) do_merge=t ;; + -X*|--strategy-option*) + case "$#,$1" in + 1,-X|1,--strategy-option) + usage ;; + *,-X|*,--strategy-option) + newopt="$2" + shift ;; + *,--strategy-option=*) + newopt="$(expr " $1" : ' --strategy-option=\(.*\)')" ;; + *,-X*) + newopt="$(expr " $1" : ' -X\(.*\)')" ;; + 1,*) + usage ;; + esac + strategy_opts="$strategy_opts $(git rev-parse --sq-quote "--$newopt")" + do_merge=t + if test -n "$strategy" + then + strategy=recursive + fi + ;; -s=*|--s=*|--st=*|--str=*|--stra=*|--strat=*|--strate=*|\ --strateg=*|--strategy=*|\ -s|--s|--st|--str|--stra|--strat|--strate|--strateg|--strategy) @@@ -346,7 -367,7 +368,7 @@@ --root) rebase_root=t ;; - -f|--f|--fo|--for|--forc|force|--force-r|--force-re|--force-reb|--force-reba|--force-rebas|--force-rebase|--no-ff) + -f|--f|--fo|--for|--forc|--force|--force-r|--force-re|--force-reb|--force-reba|--force-rebas|--force-rebase|--no-ff) force_rebase=t ;; --rerere-autoupdate|--no-rerere-autoupdate) @@@ -544,7 -565,7 +566,7 @@@ f if test -z "$do_merge" then git format-patch -k --stdout --full-index --ignore-if-in-upstream \ - $root_flag "$revisions" | + --no-renames $root_flag "$revisions" | git am $git_am_opt --rebasing --resolvemsg="$RESOLVEMSG" && move_to_original_branch ret=$?