summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Rcs/Stub.pm2
-rw-r--r--IkiWiki/Rcs/svn.pm43
-rw-r--r--doc/usage.mdwn11
3 files changed, 28 insertions, 28 deletions
diff --git a/IkiWiki/Rcs/Stub.pm b/IkiWiki/Rcs/Stub.pm
index 15e6cfb48..82edbd43e 100644
--- a/IkiWiki/Rcs/Stub.pm
+++ b/IkiWiki/Rcs/Stub.pm
@@ -27,7 +27,7 @@ sub rcs_recentchanges ($) {
sub rcs_notify () {
}
-sub rcs_getctime () {
+sub rcs_getctime ($) {
error "getctime not implemented";
}
diff --git a/IkiWiki/Rcs/svn.pm b/IkiWiki/Rcs/svn.pm
index b45b69197..86fe69ab8 100644
--- a/IkiWiki/Rcs/svn.pm
+++ b/IkiWiki/Rcs/svn.pm
@@ -227,32 +227,31 @@ sub rcs_notify () { #{{{
}
} #}}}
-sub rcs_getctime () { #{{{
+sub rcs_getctime ($) { #{{{
+ my $file=shift;
eval q{use Date::Parse};
- foreach my $page (keys %pagectime) {
- my $file="$config{srcdir}/$pagesources{$page}";
- next unless -e $file;
- my $child = open(SVNLOG, "-|");
- if (! $child) {
- exec("svn", "log", $file) || error("svn log $file failed to run");
- }
+
+ my $child = open(SVNLOG, "-|");
+ if (! $child) {
+ exec("svn", "log", $file) || error("svn log $file failed to run");
+ }
- my $date;
- while (<SVNLOG>) {
- if (/$svn_log_infoline/) {
- $date=$3;
- }
- }
- close SVNLOG || warn "svn log $file exited $?";
+ my $date;
+ while (<SVNLOG>) {
+ if (/$svn_log_infoline/) {
+ $date=$3;
+ }
+ }
+ close SVNLOG || warn "svn log $file exited $?";
- if (! defined $date) {
- warn "failed to parse svn log for $file\n";
- next;
- }
-
- $pagectime{$page}=$date=str2time($date);
- debug("found ctime ".localtime($date)." for $page");
+ if (! defined $date) {
+ warn "failed to parse svn log for $file\n";
+ return 0;
}
+
+ $date=str2time($date);
+ debug("found ctime ".localtime($date)." for $file");
+ return $date;
} #}}}
1
diff --git a/doc/usage.mdwn b/doc/usage.mdwn
index 03f40a892..c0fab5232 100644
--- a/doc/usage.mdwn
+++ b/doc/usage.mdwn
@@ -181,12 +181,13 @@ These options configure the wiki.
Be vebose about what is being done.
-* --fixctime
+* --getctime
- Pull last changed time for all pages out of the revision control system.
- This rarely used option provides a way to get the real creation times of
- items in weblogs, for example when building a wiki from a new subversion
- checkout. It is unoptimised and quite slow.
+ Pull last changed time for each new page out of the revision control
+ system. This rarely used option provides a way to get the real creation
+ times of items in weblogs, for example when building a wiki from a new
+ subversion checkout. It is unoptimised and quite slow. It is best used
+ with --rebuild, to force ikiwiki to get the ctime for all pages.
# AUTHOR