commit:     438523a27ff5f43abb14bc5c784038e25333aae2
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 17 15:34:14 2016 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sun Jan 17 15:34:39 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=438523a2

dev-vcs/git: Add yet another needed MediaWiki patch

Package-Manager: portage-2.2.26

 .../git/files/git-2.7.0-mediawiki-500pages.patch   | 46 ++++++++++++++++++++++
 .../{git-2.7.0-r1.ebuild => git-2.7.0-r2.ebuild}   |  1 +
 dev-vcs/git/git-9999-r1.ebuild                     |  1 +
 dev-vcs/git/git-9999-r2.ebuild                     |  1 +
 dev-vcs/git/git-9999-r3.ebuild                     |  1 +
 dev-vcs/git/git-9999.ebuild                        |  1 +
 6 files changed, 51 insertions(+)

diff --git a/dev-vcs/git/files/git-2.7.0-mediawiki-500pages.patch 
b/dev-vcs/git/files/git-2.7.0-mediawiki-500pages.patch
new file mode 100644
index 0000000..0ce706d
--- /dev/null
+++ b/dev-vcs/git/files/git-2.7.0-mediawiki-500pages.patch
@@ -0,0 +1,46 @@
+Searching for pages using the MediaWiki API returns at most 500 results
+(hi Patrick). To get a list of all pages in a larger wiki, we need to run
+repeated searches...
+
+Source: https://github.com/moy/Git-Mediawiki/issues/32
+Author: anarcat https://github.com/anarcat
+
+diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl 
b/contrib/mw-to-git/git-remote-mediawiki.perl
+index 8dd74a9..f2ce311 100755
+--- a/contrib/mw-to-git/git-remote-mediawiki.perl
++++ b/contrib/mw-to-git/git-remote-mediawiki.perl
+@@ -259,16 +259,29 @@ sub get_mw_tracked_categories {
+ sub get_mw_all_pages {
+       my $pages = shift;
+       # No user-provided list, get the list of pages from the API.
+-      my $mw_pages = $mediawiki->list({
++      my $query = {
+               action => 'query',
+               list => 'allpages',
+               aplimit => 'max'
+-      });
+-      if (!defined($mw_pages)) {
++      };
++      my $curpage;
++      my $oldpage = '';
++      while (1) {
++      if (defined($curpage)) {
++              if ($oldpage eq $curpage) {
++                  last;
++              }
++              $query->{apfrom} = $curpage;
++              $oldpage = $curpage;
++          }
++          my $mw_pages = $mediawiki->list($query);
++          if (!defined($mw_pages)) {
+               fatal_mw_error("get the list of wiki pages");
+-      }
+-      foreach my $page (@{$mw_pages}) {
++          }
++          foreach my $page (@{$mw_pages}) {
+               $pages->{$page->{title}} = $page;
++              $curpage = $page->{title};
++          }
+       }
+       return;
+ }

diff --git a/dev-vcs/git/git-2.7.0-r1.ebuild b/dev-vcs/git/git-2.7.0-r2.ebuild
similarity index 99%
rename from dev-vcs/git/git-2.7.0-r1.ebuild
rename to dev-vcs/git/git-2.7.0-r2.ebuild
index 4148ae4..a8c159b 100644
--- a/dev-vcs/git/git-2.7.0-r1.ebuild
+++ b/dev-vcs/git/git-2.7.0-r2.ebuild
@@ -234,6 +234,7 @@ src_prepare() {
        if use mediawiki-experimental ; then
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
        fi
 
        epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch

diff --git a/dev-vcs/git/git-9999-r1.ebuild b/dev-vcs/git/git-9999-r1.ebuild
index b414783..cceeaee 100644
--- a/dev-vcs/git/git-9999-r1.ebuild
+++ b/dev-vcs/git/git-9999-r1.ebuild
@@ -234,6 +234,7 @@ src_prepare() {
        if use mediawiki-experimental ; then
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
        fi
 
        epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch

diff --git a/dev-vcs/git/git-9999-r2.ebuild b/dev-vcs/git/git-9999-r2.ebuild
index 91378e1..992280b 100644
--- a/dev-vcs/git/git-9999-r2.ebuild
+++ b/dev-vcs/git/git-9999-r2.ebuild
@@ -234,6 +234,7 @@ src_prepare() {
        if use mediawiki-experimental ; then
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
        fi
 
        epatch "${FILESDIR}"/${PN}-2.2.0-svn-fe-linking.patch

diff --git a/dev-vcs/git/git-9999-r3.ebuild b/dev-vcs/git/git-9999-r3.ebuild
index b9b4d5a..3aea20c 100644
--- a/dev-vcs/git/git-9999-r3.ebuild
+++ b/dev-vcs/git/git-9999-r3.ebuild
@@ -237,6 +237,7 @@ src_prepare() {
        if use mediawiki-experimental ; then
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
        fi
 
        epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch

diff --git a/dev-vcs/git/git-9999.ebuild b/dev-vcs/git/git-9999.ebuild
index 18fa619..d3344ac 100644
--- a/dev-vcs/git/git-9999.ebuild
+++ b/dev-vcs/git/git-9999.ebuild
@@ -234,6 +234,7 @@ src_prepare() {
        if use mediawiki-experimental ; then
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
                epatch "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+               epatch "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
        fi
 
        epatch "${FILESDIR}"/${PN}-2.2.0-svn-fe-linking.patch

Reply via email to