From 41c01693ac13846c73a31c8f5c3a60206e1643be Mon Sep 17 00:00:00 2001 From: Andrew Myrick Date: Wed, 6 Jan 2010 16:25:22 -0800 Subject: [PATCH] git-svn: handle merge-base failures Change git-svn to warn and continue when merge-base fails while processing svn merge tickets. merge-base can fail when a partial branch is created and merged back to trunk in svn, because it cannot find a common ancestor between the partial branch and trunk. Signed-off-by: Andrew Myrick Acked-by: Sam Vilain Acked-by: Eric Wong --- git-svn.perl | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/git-svn.perl b/git-svn.perl index 947184afcf..e0773eff4e 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -3158,10 +3158,21 @@ sub find_extra_svn_parents { my $ranges = $ranges{$merge_tip}; # check out 'new' tips - my $merge_base = command_oneline( - "merge-base", - @$parents, $merge_tip, - ); + my $merge_base; + eval { + $merge_base = command_oneline( + "merge-base", + @$parents, $merge_tip, + ); + }; + if ($@) { + die "An error occurred during merge-base" + unless $@->isa("Git::Error::Command"); + + warn "W: Cannot find common ancestor between ". + "@$parents and $merge_tip. Ignoring merge info.\n"; + next; + } # double check that there are no missing non-merge commits my (@incomplete) = check_cherry_pick( -- 2.11.4.GIT