X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/654530fa8bb0937123ed526e3093170ef23f5295..236c46a3f7e5e62296484dc47b4882f7f4327a06:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 60424bbda..9e93534c6 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -6,7 +6,7 @@ use warnings; use strict; use IkiWiki; -my (%backlinks, %rendered); +my (%backlinks, %rendered, %scanned); our %brokenlinks; my $links_calculated=0; @@ -154,6 +154,8 @@ sub genpage ($$) { sub scan ($) { my $file=shift; + return if $scanned{$file}; + $scanned{$file}=1; debug(sprintf(gettext("scanning %s"), $file)); @@ -824,17 +826,14 @@ sub gen_autofile ($$$) { return 1; } -sub want_find_changes { - $config{only_committed_changes} && - exists $IkiWiki::hooks{rcs}{rcs_find_changes} && - exists $IkiWiki::hooks{rcs}{rcs_get_current_rev} -} - sub refresh () { srcdir_check(); run_hooks(refresh => sub { shift->() }); my ($files, $pages, $new, $internal_new, $del, $internal_del, $changed, $internal_changed); - if (! $config{rebuild} && want_find_changes() && defined $IkiWiki::lastrev) { + my $want_find_changes=$config{only_committed_changes} && + exists $IkiWiki::hooks{rcs}{rcs_find_changes} && + exists $IkiWiki::hooks{rcs}{rcs_get_current_rev}; + if (! $config{rebuild} && $want_find_changes && defined $IkiWiki::lastrev && length $IkiWiki::lastrev) { my ($changed_raw, $del_raw); ($changed_raw, $del_raw, $IkiWiki::lastrev) = $IkiWiki::hooks{rcs}{rcs_find_changes}{call}->($IkiWiki::lastrev); ($files, $pages)=process_changed_files($changed_raw, $del_raw); @@ -842,8 +841,8 @@ sub refresh () { else { ($files, $pages)=find_src_files(); } - if (want_find_changes()) { - if (! defined($IkiWiki::lastrev)) { + if ($want_find_changes) { + if (! defined($IkiWiki::lastrev) || ! length $IkiWiki::lastrev) { $IkiWiki::lastrev=$IkiWiki::hooks{rcs}{rcs_get_current_rev}{call}->(); } }