diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2010-12-10 18:51:44 -0600 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-12-28 11:27:56 -0800 |
commit | 67ac1e1d57e45899a4dfd900a0249f48507584b5 (patch) | |
tree | 075c4365710ef649485d83a3ba7add0e04aaa4b1 /contrib/examples | |
parent | 73e7b2ef6c62b3ec345b557acb71a8da4798c70d (diff) | |
download | git-67ac1e1d57e45899a4dfd900a0249f48507584b5.tar.gz git-67ac1e1d57e45899a4dfd900a0249f48507584b5.tar.xz |
cherry-pick/revert: add support for -X/--strategy-option
For example, this would allow cherry-picking or reverting patches from
a piece of history with a different end-of-line style, like so:
$ git revert -Xrenormalize old-problematic-commit
Currently that is possible with manual use of merge-recursive but the
cherry-pick/revert porcelain does not expose the functionality.
While at it, document the existing support for --strategy.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/examples')
-rwxr-xr-x | contrib/examples/git-revert.sh | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/contrib/examples/git-revert.sh b/contrib/examples/git-revert.sh index 60a05a8b9..6bf155cbd 100755 --- a/contrib/examples/git-revert.sh +++ b/contrib/examples/git-revert.sh @@ -26,6 +26,7 @@ require_work_tree cd_to_toplevel no_commit= +xopt= while case "$#" in 0) break ;; esac do case "$1" in @@ -44,6 +45,16 @@ do -x|--i-really-want-to-expose-my-private-commit-object-name) replay= ;; + -X?*) + xopt="$xopt$(git rev-parse --sq-quote "--${1#-X}")" + ;; + --strategy-option=*) + xopt="$xopt$(git rev-parse --sq-quote "--${1#--strategy-option=}")" + ;; + -X|--strategy-option) + shift + xopt="$xopt$(git rev-parse --sq-quote "--$1")" + ;; -*) usage ;; @@ -159,7 +170,7 @@ export GITHEAD_$head GITHEAD_$next # and $prev on top of us (when reverting), or the change between # $prev and $commit on top of us (when cherry-picking or replaying). -git-merge-recursive $base -- $head $next && +eval "git merge-recursive $xopt $base -- $head $next" && result=$(git-write-tree 2>/dev/null) || { mv -f .msg "$GIT_DIR/MERGE_MSG" { |