From: Andrew Myrick Date: Thu, 7 Jan 2010 00:25:22 +0000 (-0800) Subject: git-svn: handle merge-base failures X-Git-Tag: v1.7.0-rc0~11^2~7 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=41c01693ac13846c73a31c8f5c3a60206e1643be;p=git.git 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 --- diff --git a/git-svn.perl b/git-svn.perl index 947184afc..e0773eff4 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(