From 3bfa109971637f4f813968f69f70921c23445dbe Mon Sep 17 00:00:00 2001 From: joey Date: Sat, 23 Jun 2007 12:12:59 +0000 Subject: [PATCH] * Allow svnpath config option to contain additional extra slashes anywhere w/o confusing ikiwiki. * Rcs modules are now imported, so other modules that need similar normalisation of configs etc can do so. --- IkiWiki.pm | 2 +- IkiWiki/Rcs/svn.pm | 14 +++++++++++++- debian/changelog | 6 +++++- po/ikiwiki.pot | 4 ++-- t/svn.t | 11 +++++++++-- 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/IkiWiki.pm b/IkiWiki.pm index fdb62f7da..96da3ba9d 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -126,7 +126,7 @@ sub checkconfig () { #{{{ unless exists $config{wikistatedir}; if ($config{rcs}) { - eval qq{require IkiWiki::Rcs::$config{rcs}}; + eval qq{use IkiWiki::Rcs::$config{rcs}}; if ($@) { error("Failed to load RCS module IkiWiki::Rcs::$config{rcs}: $@"); } diff --git a/IkiWiki/Rcs/svn.pm b/IkiWiki/Rcs/svn.pm index c5e977bce..761a40a27 100644 --- a/IkiWiki/Rcs/svn.pm +++ b/IkiWiki/Rcs/svn.pm @@ -5,8 +5,20 @@ use strict; use IkiWiki; use POSIX qw(setlocale LC_CTYPE); +package IkiWiki::Rcs::svn; + +sub import { #{{{ + if (exists $IkiWiki::config{svnpath}) { + # code depends on the path not having extraneous slashes + $IkiWiki::config{svnpath}=~tr#/#/#s; + $IkiWiki::config{svnpath}=~s/\/$//; + $IkiWiki::config{svnpath}=~s/^\///; + } +} #}}} + + package IkiWiki; - + # svn needs LC_CTYPE set to a UTF-8 locale, so try to find one. Any will do. sub find_lc_ctype() { my $current = setlocale(LC_CTYPE()); diff --git a/debian/changelog b/debian/changelog index c8ff8ba5d..c1f4cb479 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,12 @@ ikiwiki (2.3) UNRELEASED; urgency=low * Corrected a typo in an error handler in the image plugin. + * Allow svnpath config option to contain additional extra slashes anywhere + w/o confusing ikiwiki. + * Rcs modules are now imported, so other modules that need similar + normalisation of configs etc can do so. - -- Joey Hess Tue, 19 Jun 2007 19:46:21 +0100 + -- Joey Hess Sat, 23 Jun 2007 13:10:06 +0100 ikiwiki (2.2) unstable; urgency=low diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 240436092..1fde3f4cc 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-06-18 21:24+0100\n" +"POT-Creation-Date: 2007-06-23 13:12+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -444,7 +444,7 @@ msgstr "" msgid "getctime not implemented" msgstr "" -#: ../IkiWiki/Rcs/svn.pm:206 +#: ../IkiWiki/Rcs/svn.pm:218 msgid "" "REV is not set, not running from svn post-commit hook, cannot send " "notifications" diff --git a/t/svn.t b/t/svn.t index 69ad5c29c..a1878a73d 100755 --- a/t/svn.t +++ b/t/svn.t @@ -14,7 +14,7 @@ BEGIN { } } } -use Test::More tests => 8; +use Test::More tests => 12; BEGIN { use_ok("IkiWiki"); } @@ -51,11 +51,18 @@ system "svn add $config{srcdir}/test2.mdwn >/dev/null"; system "svn commit $config{srcdir}/test2.mdwn -m \"$message\" >/dev/null"; @changes = IkiWiki::rcs_recentchanges(3); - is($#changes, 1); is($changes[0]{message}[0]{"line"}, $message); is($changes[0]{pages}[0]{"page"}, "test2.mdwn"); +is($changes[1]{pages}[0]{"page"}, "test1.mdwn"); +# extra slashes in the path shouldn't break things +$config{svnpath} = "/trunk//"; +IkiWiki::checkconfig(); +@changes = IkiWiki::rcs_recentchanges(3); +is($#changes, 1); +is($changes[0]{message}[0]{"line"}, $message); +is($changes[0]{pages}[0]{"page"}, "test2.mdwn"); is($changes[1]{pages}[0]{"page"}, "test1.mdwn"); system "rm -rf $dir"; -- 2.26.2