From 2276aa6c098a0337bc2bec49742e332bdd1b802c Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 10 Sep 2005 17:56:19 -0700 Subject: Use Daniel's read-tree in the merge strategy 'resolve'. And rename the one Linus kept calling stupid, 'stupid'. Signed-off-by: Junio C Hamano --- git-merge-resolve.sh | 38 +++----------------------------------- 1 file changed, 3 insertions(+), 35 deletions(-) (limited to 'git-merge-resolve.sh') diff --git a/git-merge-resolve.sh b/git-merge-resolve.sh index f0a19b4c8a..e3b04a0e95 100755 --- a/git-merge-resolve.sh +++ b/git-merge-resolve.sh @@ -1,8 +1,9 @@ #!/bin/sh # # Copyright (c) 2005 Linus Torvalds +# Copyright (c) 2005 Junio C Hamano # -# Resolve two trees. +# Resolve two trees, using enhancd multi-base read-tree. # The first parameters up to -- are merge bases; the rest are heads. bases= head= remotes= sep_seen= @@ -30,41 +31,8 @@ case "$remotes" in exit 2 ;; esac -# Find an optimum merge base if there are more than one candidates. -case "$bases" in -?*' '?*) - echo "Trying to find the optimum merge base." - G=.tmp-index$$ - best= - best_cnt=-1 - for c in $bases - do - rm -f $G - GIT_INDEX_FILE=$G git-read-tree -m $c $head $remotes \ - 2>/dev/null || continue - # Count the paths that are unmerged. - cnt=`GIT_INDEX_FILE=$G git-ls-files --unmerged | wc -l` - if test $best_cnt -le 0 -o $cnt -le $best_cnt - then - best=$c - best_cnt=$cnt - if test "$best_cnt" -eq 0 - then - # Cannot do any better than all trivial merge. - break - fi - fi - done - rm -f $G - common="$best" - ;; -*) - common="$bases" - ;; -esac - git-update-index --refresh 2>/dev/null -git-read-tree -u -m $common $head $remotes || exit 2 +git-read-tree -u -m $bases $head $remotes || exit 2 echo "Trying simple merge." if result_tree=$(git-write-tree 2>/dev/null) then -- cgit v1.2.3