Re: What's cooking in git.git (Jan 2010, #05; Sat, 16)
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:48:03
Subsystem:
the rest · Maintainer:
Linus Torvalds
Junio C Hamano [off-list ref] writes:
[Stalled] * ap/merge-backend-opts (2008-07-18) 6 commits - 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. - Teach git-pull to pass -X<option> to git-merge - git merge -X<option> - git-merge-file --ours, --theirs "git pull" patch needs sq-then-eval fix to protect it from $IFS but otherwise seemed good.
Generally I hate to step in to fix up other's series, especially when I know that the party responsible for issues is capable enough. As the pre-release feature freeze gets closer, however, I sometimes find myself doing so, and (I repeat) I hate it. In any case, a squashable update to the "Teach git-pull to pass -X" would look like this. Please give it extra set of eyeballs.
diff --git a/git-pull.sh b/git-pull.sh
index 6d961b6..fc3536b 100755
--- a/git-pull.sh
+++ b/git-pull.sh@@ -68,10 +68,10 @@ do 1,-X) usage ;; *,-X) - xx="-X $2" + xx="-X $(git rev-parse --sq-quote "$2")" shift ;; *,*) - xx="$1" ;; + xx=$(git rev-parse --sq-quote "$1") ;; esac merge_args="$merge_args$xx " ;;
@@ -228,8 +228,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 $merge_args --onto $merge_head \ - ${oldremoteref:-$merge_head} -exec git-merge $diffstat $no_commit $squash $no_ff $ff_only $log_arg $strategy_args $merge_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"