git-merge-resolve.shon commit Merge http://www.kernel.org/pub/scm/gitk/gitk (c106705)
   1#!/bin/sh
   2#
   3# Copyright (c) 2005 Linus Torvalds
   4# Copyright (c) 2005 Junio C Hamano
   5#
   6# Resolve two trees, using enhancd multi-base read-tree.
   7
   8# The first parameters up to -- are merge bases; the rest are heads.
   9bases= head= remotes= sep_seen=
  10for arg
  11do
  12        case ",$sep_seen,$head,$arg," in
  13        *,--,)
  14                sep_seen=yes
  15                ;;
  16        ,yes,,*)
  17                head=$arg
  18                ;;
  19        ,yes,*)
  20                remotes="$remotes$arg "
  21                ;;
  22        *)
  23                bases="$bases$arg "
  24                ;;
  25        esac
  26done
  27
  28# Give up if we are given more than two remotes -- not handling octopus.
  29case "$remotes" in
  30?*' '?*)
  31        exit 2 ;;
  32esac
  33
  34git-update-index --refresh 2>/dev/null
  35git-read-tree -u -m $bases $head $remotes || exit 2
  36echo "Trying simple merge."
  37if result_tree=$(git-write-tree  2>/dev/null)
  38then
  39        exit 0
  40else
  41        echo "Simple merge failed, trying Automatic merge."
  42        if git-merge-index -o git-merge-one-file -a
  43        then
  44                exit 0
  45        else
  46                exit 1
  47        fi
  48fi