On Sun, Oct 29, 2017 at 10:51 PM, Antoine Beaupré <anarcat@xxxxxxxxxx> wrote: > Virtual namespaces do not correspond to pages in the database and are > automatically generated by MediaWiki. It makes little sense, > therefore, to fetch pages from those namespaces and the MW API doesn't > support listing those pages. > > According to the documentation, those virtual namespaces are currently > "Special" (-1) and "Media" (-2) but we treat all negative namespaces > as "virtual" as a future-proofing mechanism. This patch makes more sense now with the additional commentary. Thanks. More below. > Signed-off-by: Antoine Beaupré <anarcat@xxxxxxxxxx> > --- > diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl > index e7616e1a2..5c85e64b6 100755 > --- a/contrib/mw-to-git/git-remote-mediawiki.perl > +++ b/contrib/mw-to-git/git-remote-mediawiki.perl > @@ -264,10 +264,12 @@ sub get_mw_tracked_categories { > sub get_mw_tracked_namespaces { > my $pages = shift; > foreach my $local_namespace (@tracked_namespaces) { > + my $namespace_id = get_mw_namespace_id($local_namespace); > + next if $namespace_id < 0; # virtual namespaces don't support allpages Since (it appears) that get_mw_namespace_id() can return undef, you probably still need to take that into account before performing a numeric comparison: next if !$namespace_id || $namespace_id < 0; > my $mw_pages = $mediawiki->list( { > action => 'query', > list => 'allpages', > - apnamespace => get_mw_namespace_id($local_namespace), > + apnamespace => $namespace_id, > aplimit => 'max' } ) > || die $mediawiki->{error}->{code} . ': ' > . $mediawiki->{error}->{details} . "\n";