git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Matthieu Moy <Matthieu.Moy@imag.fr>
To: git@vger.kernel.org, gitster@pobox.com
Cc: Asheesh Laroia <asheesh@asheesh.org>,
	Matthieu Moy <Matthieu.Moy@imag.fr>
Subject: [PATCH 3/8] git-remote-mediawiki: make mediafiles export optional
Date: Mon, 16 Jul 2012 14:00:48 +0200	[thread overview]
Message-ID: <1342440053-3058-4-git-send-email-Matthieu.Moy@imag.fr> (raw)
In-Reply-To: <1342440053-3058-1-git-send-email-Matthieu.Moy@imag.fr>


Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
 contrib/mw-to-git/git-remote-mediawiki | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/contrib/mw-to-git/git-remote-mediawiki b/contrib/mw-to-git/git-remote-mediawiki
index a2da52f..8e46e4e 100755
--- a/contrib/mw-to-git/git-remote-mediawiki
+++ b/contrib/mw-to-git/git-remote-mediawiki
@@ -66,11 +66,16 @@ chomp(@tracked_pages);
 my @tracked_categories = split(/[ \n]/, run_git("config --get-all remote.". $remotename .".categories"));
 chomp(@tracked_categories);
 
-# Import media files too.
+# Import media files on pull
 my $import_media = run_git("config --get --bool remote.". $remotename .".mediaimport");
 chomp($import_media);
 $import_media = ($import_media eq "true");
 
+# Export media files on push
+my $export_media = run_git("config --get --bool remote.". $remotename .".mediaexport");
+chomp($export_media);
+$export_media = !($export_media eq "false");
+
 my $wiki_login = run_git("config --get remote.". $remotename .".mwLogin");
 # Note: mwPassword is discourraged. Use the credential system instead.
 my $wiki_passwd = run_git("config --get remote.". $remotename .".mwPassword");
@@ -1068,6 +1073,11 @@ sub mw_push_file {
 		$extension = "";
 	}
 	if ($extension eq "mw") {
+		my $ns = get_mw_namespace_id_for_page($complete_file_name);
+		if ($ns && $ns == get_mw_namespace_id("File") && (!$export_media)) {
+			print STDERR "Ignoring media file related page: $complete_file_name\n";
+			return ($oldrevid, "ok");
+		}
 		my $file_content;
 		if ($page_deleted) {
 			# Deleting a page usually requires
@@ -1107,10 +1117,12 @@ sub mw_push_file {
 		}
 		$newrevid = $result->{edit}->{newrevid};
 		print STDERR "Pushed file: $new_sha1 - $title\n";
-	} else {
+	} elsif ($export_media) {
 		$newrevid = mw_upload_file($complete_file_name, $new_sha1,
 					   $extension, $page_deleted,
 					   $summary);
+	} else {
+		print STDERR "Ignoring media file $title\n";
 	}
 	$newrevid = ($newrevid or $oldrevid);
 	return ($newrevid, "ok");
@@ -1328,3 +1340,11 @@ sub get_mw_namespace_id {
 		die "No such namespace $name on MediaWiki.";
 	}
 }
+
+sub get_mw_namespace_id_for_page {
+	if (my ($namespace) = $_[0] =~ /^([^:]*):/) {
+		return get_mw_namespace_id($namespace);
+	} else {
+		return;
+	}
+}
-- 
1.7.11.1.30.g7e1baf9.dirty

  parent reply	other threads:[~2012-07-16 12:01 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-16 12:00 [PATCH 0/8] git-remote-mediawiki: fixes, optimizations, and progress report Matthieu Moy
2012-07-16 12:00 ` [PATCH 1/8] git-remote-mediawiki: don't split namespaces with spaces Matthieu Moy
2012-07-16 18:25   ` Junio C Hamano
2012-07-16 12:00 ` [PATCH 2/8] git-remote-mediawiki: actually send empty comment when they're empty Matthieu Moy
2012-07-16 18:13   ` Junio C Hamano
2012-07-16 19:06     ` Matthieu Moy
2012-07-16 19:17       ` Junio C Hamano
2012-07-16 12:00 ` Matthieu Moy [this message]
2012-07-16 18:15   ` [PATCH 3/8] git-remote-mediawiki: make mediafiles export optional Junio C Hamano
2012-07-16 19:40     ` Matthieu Moy
2012-07-16 12:00 ` [PATCH 4/8] git-remote-mediawiki: get rid of O(N^2) loop Matthieu Moy
2012-07-16 18:19   ` Junio C Hamano
2012-07-16 19:31     ` Matthieu Moy
2012-07-16 12:00 ` [PATCH 5/8] git-remote-mediawiki: use --force when adding notes Matthieu Moy
2012-07-16 12:00 ` [PATCH 6/8] git-remote-mediawiki: show progress information when listing pages Matthieu Moy
2012-07-16 12:00 ` [PATCH 7/8] git-remote-mediawiki: show progress information when getting last remote revision Matthieu Moy
2012-07-16 12:00 ` [PATCH 8/8] git-remote-mediawiki: properly deal with invalid remote revisions Matthieu Moy
2012-07-16 18:52 ` [PATCH 0/8] git-remote-mediawiki: fixes, optimizations, and progress report Junio C Hamano
2012-07-16 19:46 ` [PATCH 0/8 v2] " Matthieu Moy
2012-07-16 19:46   ` [PATCH 1/8] git-remote-mediawiki: don't split namespaces with spaces Matthieu Moy
2012-07-16 19:46   ` [PATCH 2/8] git-remote-mediawiki: actually send empty comment when they're empty Matthieu Moy
2012-07-16 19:46   ` [PATCH 3/8] git-remote-mediawiki: make mediafiles export optional Matthieu Moy
2012-07-16 19:46   ` [PATCH 4/8] git-remote-mediawiki: get rid of O(N^2) loop Matthieu Moy
2012-07-16 19:46   ` [PATCH 5/8] git-remote-mediawiki: use --force when adding notes Matthieu Moy
2012-07-16 19:46   ` [PATCH 6/8] git-remote-mediawiki: show progress information when listing pages Matthieu Moy
2012-07-16 19:46   ` [PATCH 7/8] git-remote-mediawiki: show progress information when getting last remote revision Matthieu Moy
2012-07-16 19:46   ` [PATCH 8/8] git-remote-mediawiki: properly deal with invalid remote revisions Matthieu Moy
2012-07-16 19:56   ` [PATCH 0/8 v2] git-remote-mediawiki: fixes, optimizations, and progress report Junio C Hamano
2012-07-17 14:05   ` [PATCH 0/2] git-remote-mediawiki: two more fixes Matthieu Moy
2012-07-17 14:05     ` [PATCH 1/2] git-remote-mediawiki: fix incorrect test usage in test Matthieu Moy
2012-07-17 14:06     ` [PATCH 2/2] git-remote-mediawiki: allow page names with a ':' Matthieu Moy
2012-07-20 21:11       ` Dan Johnson
2012-07-23  7:42         ` Matthieu Moy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1342440053-3058-4-git-send-email-Matthieu.Moy@imag.fr \
    --to=matthieu.moy@imag.fr \
    --cc=asheesh@asheesh.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).