Merge branch 'ap/merge-backend-opts'
* ap/merge-backend-opts: Document that merge strategies can now take their own options Extend merge-subtree tests to test -Xsubtree=dir. Make "subtree" part more orthogonal to the rest of merge-recursive. pull: Fix parsing of -X<option> Teach git-pull to pass -X<option> to git-merge git merge -X<option> git-merge-file --ours, --theirs Conflicts: git-compat-util.h
This commit is contained in:
30
git-pull.sh
30
git-pull.sh
@ -39,6 +39,7 @@ test -f "$GIT_DIR/MERGE_HEAD" && die_merge
|
||||
|
||||
strategy_args= diffstat= no_commit= squash= no_ff= ff_only=
|
||||
log_arg= verbosity=
|
||||
merge_args=
|
||||
curr_branch=$(git symbolic-ref -q HEAD)
|
||||
curr_branch_short=$(echo "$curr_branch" | sed "s|refs/heads/||")
|
||||
rebase=$(git config --bool branch.$curr_branch_short.rebase)
|
||||
@ -83,6 +84,18 @@ do
|
||||
esac
|
||||
strategy_args="${strategy_args}-s $strategy "
|
||||
;;
|
||||
-X*)
|
||||
case "$#,$1" in
|
||||
1,-X)
|
||||
usage ;;
|
||||
*,-X)
|
||||
xx="-X $(git rev-parse --sq-quote "$2")"
|
||||
shift ;;
|
||||
*,*)
|
||||
xx=$(git rev-parse --sq-quote "$1") ;;
|
||||
esac
|
||||
merge_args="$merge_args$xx "
|
||||
;;
|
||||
-r|--r|--re|--reb|--reba|--rebas|--rebase)
|
||||
rebase=true
|
||||
;;
|
||||
@ -254,8 +267,15 @@ then
|
||||
fi
|
||||
|
||||
merge_name=$(git fmt-merge-msg $log_arg <"$GIT_DIR/FETCH_HEAD") || exit
|
||||
test true = "$rebase" &&
|
||||
exec git-rebase $diffstat $strategy_args --onto $merge_head \
|
||||
${oldremoteref:-$merge_head}
|
||||
exec git-merge $diffstat $no_commit $squash $no_ff $ff_only $log_arg $strategy_args \
|
||||
"$merge_name" HEAD $merge_head $verbosity
|
||||
case "$rebase" in
|
||||
true)
|
||||
eval="git-rebase $diffstat $strategy_args $merge_args"
|
||||
eval="$eval --onto $merge_head ${oldremoteref:-$merge_head}"
|
||||
;;
|
||||
*)
|
||||
eval="git-merge $diffstat $no_commit $squash $no_ff $ff_only"
|
||||
eval="$eval $log_arg $strategy_args $merge_args"
|
||||
eval="$eval \"$merge_name\" HEAD $merge_head $verbosity"
|
||||
;;
|
||||
esac
|
||||
eval "exec $eval"
|
||||
|
||||
Reference in New Issue
Block a user