rcs_getctime and rcs_getmtime take relative filenames
authorJoey Hess <joey@kitenet.net>
Wed, 23 Jun 2010 23:32:53 +0000 (19:32 -0400)
committerJoey Hess <joey@kitenet.net>
Wed, 23 Jun 2010 23:32:53 +0000 (19:32 -0400)
There was some confusion about whether the filename was
relative to srcdir or not. Some test cases, and the bzr
plugin assumed it was relative to the srcdir. Most everything else
assumed it was absolute.

Changed it to relative, for consistency with the rest
of the rcs_ functions.

IkiWiki/Plugin/cvs.pm
IkiWiki/Plugin/darcs.pm
IkiWiki/Plugin/git.pm
IkiWiki/Plugin/mercurial.pm
IkiWiki/Plugin/svn.pm
IkiWiki/Render.pm
debian/changelog

index c6687d7800707560e9c2ca49c513dc2b3b63ca91..1a432c05248f2d8e74db1858d4c5b8271ec42310 100644 (file)
@@ -459,7 +459,7 @@ sub rcs_diff ($) {
 }
 
 sub rcs_getctime ($) {
-       my $file=shift;
+       my $file=$config{srcdir}."/".shift();
 
        my $cvs_log_infoline=qr/^date: (.+);\s+author/;
 
index 0dfc8708daee02a78d55794ba5150beb7e9b8a96..0f63b8807902fbd0d3f2478b1a2c66cbf6066e24 100644 (file)
@@ -396,14 +396,11 @@ sub rcs_getctime ($) {
        eval q{use XML::Simple};
        local $/=undef;
 
-       my $filer=substr($file, length($config{srcdir}));
-       $filer =~ s:^[/]+::;
-
        my $child = open(LOG, "-|");
        if (! $child) {
                exec("darcs", "changes", "--xml", "--reverse",
-                       "--repodir", $config{srcdir}, $filer)
-               || error("'darcs changes $filer' failed to run");
+                       "--repodir", $config{srcdir}, $file)
+               || error("'darcs changes $file' failed to run");
        }
 
        my $data;
@@ -418,7 +415,7 @@ sub rcs_getctime ($) {
        my $datestr = $log->{patch}[0]->{local_date};
 
        if (! defined $datestr) {
-               warn "failed to get ctime for $filer";
+               warn "failed to get ctime for $file";
                return 0;
        }
 
index b02fc118ddc0e758bee82b22b7c49b713a1e3153..85368606e12e52e6ebcbdb85cf687ec54af5e601 100644 (file)
@@ -658,9 +658,6 @@ sub findtimes ($$) {
        my $file=shift;
        my $id=shift; # 0 = mtime ; 1 = ctime
 
-       # Remove srcdir prefix
-       $file =~ s/^\Q$config{srcdir}\E\/?//;
-
        if (! keys %time_cache) {
                my $date;
                foreach my $line (run_or_die('git', 'log',
index edf915ae9f38ff3b0c4f426eab7ceead8b413a3f..59dc63b4e994511e2d0c67893fb91f7dc098b36d 100644 (file)
@@ -237,7 +237,7 @@ sub rcs_getctime ($) {
        my ($file) = @_;
 
        my @cmdline = ("hg", "-R", $config{srcdir}, "log", "-v",
-               "--style", "default", $file);
+               "--style", "default", "$config{srcdir}/$file");
        open (my $out, "-|", @cmdline);
 
        my @log = (mercurial_log($out));
index f1e608408b4ff919d9adf02793556fb1169c9df0..9cf82b5db3c4ce663a552cee9acd7cd22e665c3c 100644 (file)
@@ -366,7 +366,7 @@ sub findtimes ($) {
                
        my $child = open(SVNLOG, "-|");
        if (! $child) {
-               exec("svn", "log", $file) || error("svn log $file failed to run");
+               exec("svn", "log", "$config{srcdir}/$file") || error("svn log failed to run");
        }
 
        my ($cdate, $mdate);
@@ -376,10 +376,10 @@ sub findtimes ($) {
                        $mdate=$1 unless defined $mdate;
                }
        }
-       close SVNLOG || error "svn log $file exited $?";
+       close SVNLOG || error "svn log exited $?";
 
        if (! defined $cdate) {
-               error "failed to parse svn log for $file\n";
+               error "failed to parse svn log for $file";
        }
                
        eval q{use Date::Parse};
index aae1f90b033f7a0954ef85c7e911d8f4a1ebf0f1..a653ab2da02e542828349c3d9f3ac200340608f4 100644 (file)
@@ -374,7 +374,7 @@ sub find_new_files ($) {
                        }
 
                        eval {
-                               my $ctime=rcs_getctime("$config{srcdir}/$file");
+                               my $ctime=rcs_getctime($file);
                                if ($ctime > 0) {
                                        $pagectime{$page}=$ctime;
                                }
@@ -384,7 +384,7 @@ sub find_new_files ($) {
                        }
                        my $mtime;
                        eval {
-                               $mtime=rcs_getmtime("$config{srcdir}/$file");
+                               $mtime=rcs_getmtime($file);
                        };
                        if ($@) {
                                print STDERR $@;
index f7452a070e14d08c6ea9a10f6cfe2445a3606e35..88ed3a90bfb2cbb26dde366cae7a7ff6f1b4b44b 100644 (file)
@@ -3,6 +3,8 @@ ikiwiki (3.20100624) UNRELEASED; urgency=low
   * API: Add new optional field usershort to rcs_recentchanges.
   * API: rcs_commit and rcs_commit_staged are now passed named
     parameters.
+  * Fixed some confusion and bugginess about whether
+    rcs_getctime/rcs_getmtime were passed absolute or relative filenames.
 
  -- Joey Hess <joeyh@debian.org>  Wed, 23 Jun 2010 15:30:04 -0400