Code

merge script: merge -X<option>
[git.git] / contrib / examples / git-merge.sh
index d49156666091eda246abcac8c7c76a0917872d1c..0d53735d6719dfcc37b8651c26acdef2172e3ee9 100755 (executable)
@@ -16,6 +16,7 @@ squash               create a single commit instead of doing a merge
 commit               perform a commit if the merge succeeds (default)
 ff                   allow fast-forward (default)
 s,strategy=          merge strategy to use
+X=                   option for selected merge strategy
 m,message=           message to be used for the merge commit (if any)
 "
 
@@ -40,6 +41,7 @@ default_octopus_strategies='octopus'
 no_fast_forward_strategies='subtree ours'
 no_trivial_strategies='recursive recur subtree ours recursive-ours recursive-theirs'
 use_strategies=
+xopt=
 
 allow_fast_forward=t
 allow_trivial_merge=t
@@ -196,6 +198,10 @@ parse_config () {
                                die "available strategies are: $all_strategies" ;;
                        esac
                        ;;
+               -X)
+                       shift
+                       xopt="${xopt:+$xopt }$(git rev-parse --sq-quote "--$1")"
+                       ;;
                -m|--message)
                        shift
                        merge_msg="$1"
@@ -469,7 +475,7 @@ do
     # Remember which strategy left the state in the working tree
     wt_strategy=$strategy
 
-    git-merge-$strategy $common -- "$head_arg" "$@"
+    eval 'git-merge-$strategy '"$xopt"' $common -- "$head_arg" "$@"'
     exit=$?
     if test "$no_commit" = t && test "$exit" = 0
     then