git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] remote-mediawiki: limit filenames to legal

From
Antoine Beaupré <anarcat@debian.org>
Date
Oct 29, 2017, 16:37 UTC
Message-ID
<20171029163714.4818-1-anarcat@debian.org>

mediawiki pages can have names longer than NAME_MAX (generally 255) characters, which will fail on checkout. we simply strip out extra characters, which may mean one page's content will overwrite another (the last editing winning).

ideally, we would do a more clever system to find unique names, but
that would be more difficult and error prone for a situation that
should rarely happen in the first place.
---
 contrib/mw-to-git/git-remote-mediawiki.perl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl
index e7f857c1a..58870d197 100755
--- a/contrib/mw-to-git/git-remote-mediawiki.perl
+++ b/contrib/mw-to-git/git-remote-mediawiki.perl
@@ -18,6 +18,7 @@ use Git::Mediawiki qw(clean_filename smudge_filename connect_maybe
 					EMPTY HTTP_CODE_OK);
 use DateTime::Format::ISO8601;
 use warnings;
+use POSIX;
 
 # By default, use UTF-8 to communicate with Git and the user
 binmode STDERR, ':encoding(UTF-8)';
@@ -703,7 +704,7 @@ sub import_file_revision {
 		%mediafile = %{$mediafile};
 	}
 
-	my $title = $commit{title};
+	my $title = substr($commit{title}, 0, NAME_MAX);
 	my $comment = $commit{comment};
 	my $content = $commit{content};
 	my $author = $commit{author};
-- 
2.11.0
Next: Antoine Beaupré
Message 1 of 6 in “remote-mediawiki: limit filenames to legal”
  1. remote-mediawiki: limit filenames to legalAntoine Beaupré, Oct 29, 2017
  2. remote-mediawiki: limit filenames to legalAntoine Beaupré, Oct 29, 2017
  3. Matthieu MoyOct 30, 2017
  4. Antoine BeaupréOct 30, 2017
  5. Antoine Beaupré, Oct 29, 2017
  6. remote-mediawiki: limit filenames to legalAntoine Beaupré, Oct 29, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.