aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-06-23 12:12:59 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-06-23 12:12:59 +0000
commit3bfa109971637f4f813968f69f70921c23445dbe (patch)
tree2a4b9dfce606413a23d0d806b252aabc9369188c
parent9a122f001aa44af70b8a6c0861c1ab869d4379f7 (diff)
downloadikiwiki-3bfa109971637f4f813968f69f70921c23445dbe.tar
ikiwiki-3bfa109971637f4f813968f69f70921c23445dbe.tar.gz
* 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.
-rw-r--r--IkiWiki.pm2
-rw-r--r--IkiWiki/Rcs/svn.pm14
-rw-r--r--debian/changelog6
-rw-r--r--po/ikiwiki.pot4
-rwxr-xr-xt/svn.t11
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 <joeyh@debian.org> Tue, 19 Jun 2007 19:46:21 +0100
+ -- Joey Hess <joeyh@debian.org> 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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";