diff options
author | Andrew Myrick <amyrick@apple.com> | 2010-01-06 16:25:22 -0800 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2010-01-23 03:23:03 -0800 |
commit | 41c01693ac13846c73a31c8f5c3a60206e1643be (patch) | |
tree | a21ce5371bb47d706c60a4c48d2a1467e8150f5a /git-svn.perl | |
parent | 1cef6500a9edc7997bd0aa4cd1f739f5106ab0a9 (diff) | |
download | git-41c01693ac13846c73a31c8f5c3a60206e1643be.tar.gz |
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 <amyrick@apple.com>
Acked-by: Sam Vilain <sam@vilain.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-x | git-svn.perl | 19 |
1 files 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( |