From: Joey Hess Date: Wed, 16 Jun 2010 02:56:06 +0000 (-0400) Subject: Make --gettime be honored after initial setup. X-Git-Tag: 3.20100623~52 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=5f33532468fbd52b15ab599a3198749efcfc7710;p=ikiwiki.git Make --gettime be honored after initial setup. Bugfix in passing: New files not treated as such when no rcs is used. --- 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 Fri, 11 Jun 2010 13:39:15 -0400