merge script: forbid merge -s index
authorJonathan Nieder <jrnieder@gmail.com>
Tue, 17 Aug 2010 07:06:06 +0000 (02:06 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 18 Aug 2010 21:02:04 +0000 (14:02 -0700)
Some git-merge-* commands are not merge strategies.  This is based on
v1.6.1-rc1~294^2~7 (builtin-merge: allow using a custom strategy,
2008-07-30) but it is less smart: we just use a hard-coded list of
forbidden strategy names.  It is okay if this falls out of date, since
the code is just an example.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/examples/git-merge.sh

index 49d8265083d1740692bc650814ca9283ff190243..bab3da9eec933c26d8f6cd983f8a9742bad42042 100755 (executable)
@@ -36,6 +36,7 @@ LF='
 
 all_strategies='recur recursive octopus resolve stupid ours subtree'
 all_strategies="$all_strategies recursive-ours recursive-theirs"
+not_strategies='base file index tree'
 default_twohead_strategies='recursive'
 default_octopus_strategies='octopus'
 no_fast_forward_strategies='subtree ours'
@@ -196,6 +197,10 @@ parse_config () {
                                use_strategies="$use_strategies$1 "
                                ;;
                        *)
+                               case " $not_strategies " in
+                               *" $1 "*)
+                                       false
+                               esac &&
                                type "git-merge-$1" >/dev/null 2>&1 ||
                                        die "available strategies are: $all_strategies"
                                use_strategies="$use_strategies$1 "