git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] octopus: fallback on empty tree for ancestor
@ 2013-06-20  0:27 R. Andrew Ohana
  0 siblings, 0 replies; only message in thread
From: R. Andrew Ohana @ 2013-06-20  0:27 UTC (permalink / raw)
  To: git; +Cc: R. Andrew Ohana

From: "R. Andrew Ohana" <andrew.ohana@gmail.com>

This is preferable to just aborting when no
common ancestor is found since it handles merges
of intersecting branches.

This is incredibly useful functionality when
consolidating multiple repositories (potentially
after using filter-branch to fix paths).

See http://stackoverflow.com/questions/10874149.

Signed-off-by: R. Andrew Ohana <andrew.ohana@gmail.com>
---
 git-merge-octopus.sh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/git-merge-octopus.sh b/git-merge-octopus.sh
index 8643f74..582ae69 100755
--- a/git-merge-octopus.sh
+++ b/git-merge-octopus.sh
@@ -48,6 +48,7 @@ MRC=$(git rev-parse --verify -q $head)
 MRT=$(git write-tree)
 NON_FF_MERGE=0
 OCTOPUS_FAILURE=0
+EMPTY_TREE=$(git hash-object -t tree /dev/null)
 for SHA1 in $remotes
 do
 	case "$OCTOPUS_FAILURE" in
@@ -67,7 +68,9 @@ do
 		eval pretty_name=\${GITHEAD_$SHA1_UP:-$pretty_name}
 	fi
 	common=$(git merge-base --all $SHA1 $MRC) ||
-		die "Unable to find common commit with $pretty_name"
+		# Try with an empty tree if no common ancestor was
+		# found, since it is common to all trees.
+		common=$EMPTY_TREE
 
 	case "$LF$common$LF" in
 	*"$LF$SHA1$LF"*)
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-06-20  0:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-20  0:27 [PATCH] octopus: fallback on empty tree for ancestor R. Andrew Ohana

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).