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
next prev 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).