git-merge: make recursive the default strategy
authorJunio C Hamano <junkio@cox.net>
Thu, 24 Nov 2005 00:23:11 +0000 (16:23 -0800)
committerJunio C Hamano <junkio@cox.net>
Thu, 24 Nov 2005 00:23:11 +0000 (16:23 -0800)
git-pull invoked merge with recursive as the default strategy
for some time now; match it in the git-merge itself.  Also avoid
listing more than one strategy on default because we have only
one strategy that can resolve an octopus and we are already
counting heads here.  This reduces the need to stash away local
modifications.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-merge.sh

index 7f481e4..255476e 100755 (executable)
@@ -12,10 +12,8 @@ usage () {
     die "git-merge [-n] [--no-commit] [-s <strategy>]... <merge-message> <head> <remote>+"
 }
 
-# all_strategies='resolve recursive stupid octopus'
-
 all_strategies='recursive octopus resolve stupid ours'
-default_strategies='resolve octopus'
+default_strategies='recursive'
 use_strategies=
 
 dropsave() {
@@ -90,11 +88,6 @@ do
        shift
 done
 
-case "$use_strategies" in
-'')
-       use_strategies=$default_strategies
-       ;;
-esac
 test "$#" -le 2 && usage ;# we need at least two heads.
 
 merge_msg="$1"
@@ -185,6 +178,17 @@ case "$#,$common,$no_commit" in
        ;;
 esac
 
+case "$use_strategies" in
+'')
+       case "$#" in
+       1)
+               use_strategies="$default_strategies" ;;
+       *)
+               use_strategies=octopus ;;
+       esac            
+       ;;
+esac
+
 # At this point, we need a real merge.  No matter what strategy
 # we use, it would operate on the index, possibly affecting the
 # working tree, and when resolved cleanly, have the desired tree