Re: What's cooking in git.git (Jan 2010, #05; Sat, 16)
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 18, 2010, 06:30 UTC
- Message-ID
- <7vd417udpi.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <7vljfxa1o6.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 12 quoted lines
> [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"