From: "R. Andrew Ohana" <andrew.ohana@xxxxxxxxx> 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@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html