X-Git-Url: http://git.tremily.us/?p=ikiwiki.git;a=blobdiff_plain;f=ikiwiki;h=1159ce769b821c3e9a417b7f6646e956dfa71421;hp=3998b40d2321acf237fb1d952b096a451c42b81f;hb=6c83ce4d5608f567f8f94b2f26461b5918e5327e;hpb=e801088d078febb5d805eb29009076a4875d2141 diff --git a/ikiwiki b/ikiwiki index 3998b40d2..1159ce769 100755 --- a/ikiwiki +++ b/ikiwiki @@ -324,9 +324,9 @@ sub loadindex () { sub saveindex () { open (OUT, ">$srcdir/.index") || error("cannot write to .index: $!"); foreach my $page (keys %oldpagemtime) { - print OUT "$oldpagemtime{$page} $pagesources{$page} $renderedfiles{$page} ". - join(" ", @{$links{$page}})."\n" - if $oldpagemtime{$page}; + print OUT "$oldpagemtime{$page} $pagesources{$page} $renderedfiles{$page} ". + join(" ", @{$links{$page}})."\n" + if $oldpagemtime{$page}; } close OUT; } @@ -370,13 +370,19 @@ sub rcs_recentchanges ($) { my $num=shift; my @ret; - eval {use Date::Parse}; - eval {use Time::Duration}; + eval q{use Date::Parse}; + eval q{use Time::Duration}; + + my %sourcepages=reverse %pagesources; if (-d "$srcdir/.svn") { my $info=`LANG=C svn info $srcdir`; my ($svn_url)=$info=~/^URL: (.*)$/m; + # FIXME: currently assumes that the wiki is under trunk in + # svn. + my ($svn_base)=$svn_url=~m!(/trunk/.*)!; + my $div=qr/^--------------------+$/; my $infoline=qr/^r(\d+)\s+\|\s+([^\s]+)\s+\|\s+(\d+-\d+-\d+\s+\d+:\d+:\d+\s+[-+]?\d+).*/; my $state='start'; @@ -391,8 +397,8 @@ sub rcs_recentchanges ($) { $user=$2; $when=concise(ago(time - str2time($3))); } - elsif ($state eq 'header' && /^\s+(.*)/) { - push @pages, $1; + elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E(.*)/) { + push @pages, $sourcepages{$1}; } elsif ($state eq 'header' && /^$/) { $state='body'; @@ -554,7 +560,7 @@ FILE: foreach my $file (@files) { sub gen_wrapper ($$) { my ($svn, $rebuild)=@_; - eval {use Cwd 'abs_path'}; + eval q{use Cwd 'abs_path'}; $srcdir=abs_path($srcdir); $destdir=abs_path($destdir); my $this=abs_path($0);