diff options
Diffstat (limited to 'git-merge-resolve.sh')
-rwxr-xr-x | git-merge-resolve.sh | 38 |
1 files changed, 3 insertions, 35 deletions
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 |