mirror of
https://github.com/git/git.git
synced 2025-04-18 16:53:57 +00:00
git-remote-mediawiki: properly deal with invalid remote revisions
Some wiki, including https://git.wiki.kernel.org/ have invalid revision numbers (i.e. the actual revision numbers are non-contiguous). Don't die when encountering one. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a393f48823
commit
ebd5fe1c15
@ -910,6 +910,10 @@ sub mw_import_revids {
|
||||
my $last_timestamp = 0; # Placeholer in case $rev->timestamp is undefined
|
||||
|
||||
foreach my $pagerevid (@$revision_ids) {
|
||||
# Count page even if we skip it, since we display
|
||||
# $n/$total and $total includes skipped pages.
|
||||
$n++;
|
||||
|
||||
# fetch the content of the pages
|
||||
my $query = {
|
||||
action => 'query',
|
||||
@ -924,6 +928,11 @@ sub mw_import_revids {
|
||||
die "Failed to retrieve modified page for revision $pagerevid";
|
||||
}
|
||||
|
||||
if (defined($result->{query}->{badrevids}->{$pagerevid})) {
|
||||
# The revision id does not exist on the remote wiki.
|
||||
next;
|
||||
}
|
||||
|
||||
if (!defined($result->{query}->{pages})) {
|
||||
die "Invalid revision $pagerevid.";
|
||||
}
|
||||
@ -932,10 +941,6 @@ sub mw_import_revids {
|
||||
my $result_page = $result_pages[0];
|
||||
my $rev = $result_pages[0]->{revisions}->[0];
|
||||
|
||||
# Count page even if we skip it, since we display
|
||||
# $n/$total and $total includes skipped pages.
|
||||
$n++;
|
||||
|
||||
my $page_title = $result_page->{title};
|
||||
|
||||
if (!exists($pages->{$page_title})) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user