Staging
v0.5.2
https://github.com/git/git
Revision 9cb90b80fc1ec09d8e51451b18a7c8ef7eac8908 authored by Rene Scharfe on 08 October 2006, 13:44:50 UTC, committed by Junio C Hamano on 08 October 2006, 19:43:07 UTC
Noted by Jiri Slaby, git-tar-tree --remote doesn't need to be run
from inside of a git archive.  Since git-tar-tree is now only a
wrapper for git-archive, which calls setup_git_directory() as
needed, we should drop the flag RUN_SETUP.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
1 parent 7a0cf2d
Raw File
Tip revision: 9cb90b80fc1ec09d8e51451b18a7c8ef7eac8908 authored by Rene Scharfe on 08 October 2006, 13:44:50 UTC
git-tar-tree: don't RUN_SETUP
Tip revision: 9cb90b8
git-merge-stupid.sh
#!/bin/sh
#
# Copyright (c) 2005 Linus Torvalds
#
# Resolve two trees, 'stupid merge'.

# The first parameters up to -- are merge bases; the rest are heads.
bases= head= remotes= sep_seen=
for arg
do
	case ",$sep_seen,$head,$arg," in
	*,--,)
		sep_seen=yes
		;;
	,yes,,*)
		head=$arg
		;;
	,yes,*)
		remotes="$remotes$arg "
		;;
	*)
		bases="$bases$arg "
		;;
	esac
done

# Give up if we are given more than two remotes -- not handling octopus.
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
echo "Trying simple merge."
if result_tree=$(git-write-tree  2>/dev/null)
then
	exit 0
else
	echo "Simple merge failed, trying Automatic merge."
	if git-merge-index -o git-merge-one-file -a
	then
		exit 0
	else
		exit 1
	fi
fi
back to top