Merge branch 'cw/rebase-i-root'
[gitweb.git] / contrib / mw-to-git / git-remote-mediawiki
index 6bf1d1ad4490c9b8772e33e173672da92cb5a55b..accd70a94c82b425039b55afdf7b4b8761e7faba 100755 (executable)
@@ -20,9 +20,6 @@
 # - Git renames could be turned into MediaWiki renames (see TODO
 #   below)
 #
-# - login/password support requires the user to write the password
-#   cleartext in a file (see TODO below).
-#
 # - No way to import "one page, and all pages included in it"
 #
 # - Multiple remote MediaWikis have not been very well tested.
@@ -72,9 +69,7 @@ chomp($import_media);
 $import_media = ($import_media eq "true");
 
 my $wiki_login = run_git("config --get remote.". $remotename .".mwLogin");
-# TODO: ideally, this should be able to read from keyboard, but we're
-# inside a remote helper, so our stdin is connect to git, not to a
-# terminal.
+# Note: mwPassword is discourraged. Use the credential system instead.
 my $wiki_passwd = run_git("config --get remote.". $remotename .".mwPassword");
 my $wiki_domain = run_git("config --get remote.". $remotename .".mwDomain");
 chomp($wiki_login);
@@ -912,6 +907,14 @@ sub mw_import_revids {
 
                my $result = $mediawiki->api($query);
 
+               if (!$result) {
+                       die "Failed to retrieve modified page for revision $pagerevid";
+               }
+
+               if (!defined($result->{query}->{pages})) {
+                       die "Invalid revision $pagerevid.";
+               }
+
                my @result_pages = values(%{$result->{query}->{pages}});
                my $result_page = $result_pages[0];
                my $rev = $result_pages[0]->{revisions}->[0];