aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-05-26 15:22:43 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-05-26 15:22:43 +0000
commit361ec86696628cdfe2f8904211c8b747bde10468 (patch)
tree1c78f989e9104fbffd9ae8adaefb34e2596981dc
parent526044e1da808a3ab291e21be5401e7d84ebecc0 (diff)
downloadikiwiki-361ec86696628cdfe2f8904211c8b747bde10468.tar
ikiwiki-361ec86696628cdfe2f8904211c8b747bde10468.tar.gz
* --getctime had bitrotted (well I only ever used it the once so far..),
fix and make it a bit more flexible * rcs_getctime is changed, now rather than needing to loop over all pages, it should just use the rcs to get the ctime of the passed file.
-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