Could not access revision times

The error

When attempting to log a Subversion repository you may get a "500 Internal Server Error" (via Apache), or "Could not access revision times" (via command line).

Logging via WebDAV
svn log --xml -v -r {2008-04-24T07:55:27Z}:{2008-04-24T17:59:48Z} http://svn.codehaus.org/monkey/
Logging via the filesystem
svn log --xml -v -r {2008-04-24T07:55:27Z}:{2008-04-24T17:59:48Z} file:///home/projects/monkey/

The cause

When svndumpfilter is used to filter revisions from a Subversion dump, the placeholder revisions have no date or time

To be able to do date ranged queries, you need the date to be set (as subversion does a binary search of revisions; hitting a null-dated revision breaks it)

The solution

The Subversion administrator (while a normal committer can do this, the pre-revprop-change script is managed on the server) must go through all revisions and set a date on them. The date needs to be set such that the revision ordering and date ordering is consistent.

The script set-svn-date is a Ruby script that will download the revision log, and produce a script that can update the revision svn:date property to an appropriate value.

The script DOES NOT make any changes to your repository. It just generates a script that can be used to do so

Allowing revision property changes

echo '#!/bin/sh'  > hooks/pre-revprop-change
echo 'exit 0'    >> hooks/pre-revprop-change
chmod 755 hooks/pre-revprop-change

Labels

 
(None)