* Allow svnpath config option to contain additional extra slashes anywhere
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sat, 23 Jun 2007 12:12:59 +0000 (12:12 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sat, 23 Jun 2007 12:12:59 +0000 (12:12 +0000)
  w/o confusing ikiwiki.
* Rcs modules are now imported, so other modules that need similar
  normalisation of configs etc can do so.

IkiWiki.pm
IkiWiki/Rcs/svn.pm
debian/changelog
po/ikiwiki.pot
t/svn.t

index fdb62f7da028f88c139b76949427fb7867767b67..96da3ba9d440855b58be4ff713bb8e9d06de5b1d 100644 (file)
@@ -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}: $@");
                }
index c5e977bced1479f75a626031c201a48e8e5b0910..761a40a274dc41656b1d068cd70fb811e50c1471 100644 (file)
@@ -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());
index c8ff8ba5dcf3304695811fcd20b71fa0c4bc3e39..c1f4cb4798193b1d50c7d670b44f68c9a48f8cb4 100644 (file)
@@ -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
 
index 240436092bb3ee4f2ba5f3dee995f23fd453f125..1fde3f4cc894235ac2377d371457f402c49bc9fe 100644 (file)
@@ -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 69ad5c29c18d389d079d1a174cabae246a4858c1..a1878a73d86b3df6e3061b9a2739ee3ec766de46 100755 (executable)
--- 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";