aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Render.pm58
-rw-r--r--debian/changelog1
2 files changed, 32 insertions, 27 deletions
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index 740bb52b0..c6167b437 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -300,6 +300,7 @@ sub find_src_files () {
my ($page, $underlay);
my $helper=sub {
my $file=decode_utf8($_);
+
return if -l $file || -d _;
$file=~s/^\.\///;
return if ! length $file;
@@ -363,6 +364,35 @@ sub find_new_files ($) {
foreach my $file (@$files) {
my $page=pagename($file);
+
+ if ($config{rcs} && $config{gettime} &&
+ -e "$config{srcdir}/$file") {
+ if (! $times_noted) {
+ debug(sprintf(gettext("querying %s for file creation and modification times.."), $config{rcs}));
+ $times_noted=1;
+ }
+
+ eval {
+ my $ctime=rcs_getctime("$config{srcdir}/$file");
+ if ($ctime > 0) {
+ $pagectime{$page}=$ctime;
+ }
+ };
+ if ($@) {
+ print STDERR $@;
+ }
+ my $mtime;
+ eval {
+ $mtime=rcs_getmtime("$config{srcdir}/$file");
+ };
+ if ($@) {
+ print STDERR $@;
+ }
+ elsif ($mtime > 0) {
+ utime($mtime, $mtime, "$config{srcdir}/$file");
+ }
+ }
+
if (exists $pagesources{$page} && $pagesources{$page} ne $file) {
# the page has changed its type
$forcerebuild{$page}=1;
@@ -372,34 +402,8 @@ sub find_new_files ($) {
if (isinternal($page)) {
push @internal_new, $file;
}
- elsif ($config{rcs}) {
+ else {
push @new, $file;
- if ($config{gettime} && -e "$config{srcdir}/$file") {
- if (! $times_noted) {
- debug(sprintf(gettext("querying %s for file creation and modification times.."), $config{rcs}));
- $times_noted=1;
- }
-
- eval {
- my $ctime=rcs_getctime("$config{srcdir}/$file");
- if ($ctime > 0) {
- $pagectime{$page}=$ctime;
- }
- };
- if ($@) {
- print STDERR $@;
- }
- my $mtime;
- eval {
- $mtime=rcs_getmtime("$config{srcdir}/$file");
- };
- if ($@) {
- print STDERR $@;
- }
- elsif ($mtime > 0) {
- utime($mtime, $mtime, "$config{srcdir}/$file");
- }
- }
}
$pagecase{lc $page}=$page;
if (! exists $pagectime{$page}) {
diff --git a/debian/changelog b/debian/changelog
index c28120922..cc128c46f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -18,6 +18,7 @@ ikiwiki (3.20100611) UNRELEASED; urgency=low
* calendar: Tune archive_pagespec to only match pages, not other files.
* Fix issues with combining unicode srcdirs and source files.
(Workaround bug #586045)
+ * Make --gettime be honored after initial setup.
-- Joey Hess <joeyh@debian.org> Fri, 11 Jun 2010 13:39:15 -0400