summary refs log tree commit diff
path: root/git-merge-octopus.sh
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-01-13 01:37:09 -0800
committerJunio C Hamano <junkio@cox.net>2006-01-13 01:40:16 -0800
commitc884dd9a54fcde71ea125c86e6b6ab92acbbc7cf (patch)
tree20995b64343e548941ccb2e00796496dedb73149 /git-merge-octopus.sh
parent4dc00021f784697e6d196ec285c8689d0777c533 (diff)
octopus: allow criss-cross and clarify the message when it rejects
We rejected multi-base merge situations even though we used the
same underlying multi-base git-read-tree as the resolve strategy
uses.  This was unneeded and did not add much to ensure the
merge to be truly trivial, so remove this restriction and be
more similar to what resolve does.

Also when the merge did not trivially resolve, we rejected
without stating that octopus strategy does not handle the
situation.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-merge-octopus.sh')
-rwxr-xr-xgit-merge-octopus.sh14
1 files changed, 7 insertions, 7 deletions
diff --git a/git-merge-octopus.sh b/git-merge-octopus.sh
index 7adffdc795..d1f9f3d2d0 100755
--- a/git-merge-octopus.sh
+++ b/git-merge-octopus.sh
@@ -53,11 +53,8 @@ do
 	common=$(git-merge-base --all $MRC $SHA1) ||
 		die "Unable to find common commit with $SHA1"
 
-	case "$common" in
-	?*"$LF"?*)
-		die "Not trivially mergeable."
-		;;
-	$SHA1)
+	case "$LF$common$LF" in
+	*"$LF$SHA1$LF"*)
 		echo "Already up-to-date with $SHA1"
 		continue
 		;;
@@ -87,8 +84,11 @@ do
 	if test $? -ne 0
 	then
 		echo "Simple merge did not work, trying automatic merge."
-		git-merge-index -o git-merge-one-file -a ||
-		exit 2 ; # Automatic merge failed; should not be doing Octopus
+		git-merge-index -o git-merge-one-file -a || {
+			echo "Not trivially merged."
+			echo "Should not be doing an Octopus."
+			exit 2
+		}
 		next=$(git-write-tree 2>/dev/null)
 	fi