Code

Make git-recursive the default strategy for git-pull.
authorJunio C Hamano <junkio@cox.net>
Tue, 8 Nov 2005 10:00:31 +0000 (02:00 -0800)
committerJunio C Hamano <junkio@cox.net>
Thu, 10 Nov 2005 02:56:29 +0000 (18:56 -0800)
This does two things:

 - It changes the hardcoded default merge strategy for two-head
   git-pull from resolve to recursive.

 - .git/config file acquires two configuration items.
   pull.twohead names the strategy for two-head case, and
   pull.octopus names the strategy for octopus merge.

IOW you are paranoid, you can have the following lines in your
.git/config file and keep using git-merge-resolve when pulling
one remote:

[pull]
twohead = resolve

OTOH, you can say this:

[pull]
twohead = resolve
twohead = recursive

to try quicker resolve first, and when it fails, fall back to
recursive.

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

index 2358af62d5eb008ef3d04de67cea7a56aab16526..3b875ad438c21df50c0b1f26bc8fac5ab1bc9740 100755 (executable)
@@ -79,10 +79,22 @@ case "$merge_head" in
        exit 0
        ;;
 ?*' '?*)
-       strategy_default_args='-s octopus'
+       var=`git-var -l | sed -ne 's/^pull\.octopus=/-s /p'`
+       if test '' = "$var"
+       then
+               strategy_default_args='-s octopus'
+       else
+               strategy_default_args=$var
+       fi
        ;;
 *)
-       strategy_default_args='-s resolve'
+       var=`git-var -l | sed -ne 's/^pull\.twohead=/-s /p'`
+       if test '' = "$var"
+       then
+               strategy_default_args='-s recursive'
+       else
+               strategy_default_args=$var
+       fi
        ;;
 esac