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>
This commit is contained in:
Andrew Myrick 2010-01-06 16:25:22 -08:00 коммит произвёл Eric Wong
Родитель 1cef6500a9
Коммит 41c01693ac
1 изменённых файлов: 15 добавлений и 4 удалений

Просмотреть файл

@ -3158,10 +3158,21 @@ sub find_extra_svn_parents {
my $ranges = $ranges{$merge_tip}; my $ranges = $ranges{$merge_tip};
# check out 'new' tips # check out 'new' tips
my $merge_base = command_oneline( my $merge_base;
"merge-base", eval {
@$parents, $merge_tip, $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 # double check that there are no missing non-merge commits
my (@incomplete) = check_cherry_pick( my (@incomplete) = check_cherry_pick(