summaryrefslogtreecommitdiff
path: root/IkiWiki/Rcs
diff options
context:
space:
mode:
Diffstat (limited to 'IkiWiki/Rcs')
-rw-r--r--IkiWiki/Rcs/Stub.pm2
-rw-r--r--IkiWiki/Rcs/svn.pm43
2 files changed, 22 insertions, 23 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