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).
svn log --xml -v -r {2008-04-24T07:55:27Z}:{2008-04-24T17:59:48Z} http://svn.codehaus.org/monkey/
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
