summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2005-11-08 02:00:31 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2005-11-09 18:56:29 -0800
commita1c292958f9968565f4048a17196d99fd16fc7ca (patch)
tree6466c53ae80cddbb581c5fdb2332f9321fade867
parentUse 'merge-base --all' where applicable. (diff)
downloadtgif-a1c292958f9968565f4048a17196d99fd16fc7ca.tar.xz
Make git-recursive the default strategy for git-pull.
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>
-rwxr-xr-xgit-pull.sh16
1 files changed, 14 insertions, 2 deletions
diff --git a/git-pull.sh b/git-pull.sh
index 2358af62d5..3b875ad438 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -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