On Wed, Mar 2, 2016 at 9:22 AM, sebb <seb...@gmail.com> wrote: > On 2 March 2016 at 13:52, Sam Ruby <ru...@intertwingly.net> wrote: >> On Wed, Mar 2, 2016 at 8:09 AM, sebb <seb...@gmail.com> wrote: >>> Some of the code needs access to a single file in SVN, e.g. >>> >>> https://svn.apache.org/repos/asf/incubator/public/trunk/content/podlings.xml >>> >>> AFAIK there are no other items needed in the same part of SVN. >>> >>> Yet one has to checkout the parent directory and keep it updated. >>> >>> This is a nuisance for testing purposes. >>> >>> For SVN files that don't need authentication, it is easy enough to >>> fetch the file using HTTP(S) and cache it locally. For subsequent >>> requests, the cache date can be used in an If-Modified request. >>> The last checked date can also be saved to avoid checking the file too >>> often. >>> >>> This technique has been used in reporter.a.o for checking the chair >>> index in foundation/index.mdtext: >>> >>> https://svn.apache.org/repos/asf/comdev/reporter.apache.org/trunk/scripts/parsepmcs.py >>> >>> Might be worth cosidering re-implementing the python caching code used >>> there. >> >> As very few of the resources accessed by whimsy are public, that would >> only solve a small part of the problem. > > Which in itself is an issue - should we be encouraging downloading all > these resources for testing purposes? > > In particular, it seems wrong to have to download all the ICLAs.
Ideally, applications would only make optional use of such repositories - and would check to see if ASF::SVN returned nil or not. >> Given that the resources needed are declared in >> https://github.com/apache/whimsy/blob/master/repository.yml, perhaps a >> more complete solution would be to use the 'svn:update' task defined >> in https://github.com/apache/whimsy/blob/master/Rakefile#L66 ? >> >> At the moment, that task is assuming that you do *NOT* override :svn: >> in your .whimsy config file. Perhaps it should handle that case? > > Better would be to have a function to report which entries are > missing, so the user can decide which they want to download based on > what they are testing. > > Maybe also with a function to report which are out of date. I've roughed in such a tool. You will need to do a "bundle update" or otherwise get the latest Wunderbar (1.0.21) to test it out locally. Then run: ruby www/status/svn.cgi And then visit http://localhost:4567/ Checkout is not yet implemented (it would need to prompt you for a destination). This tool is deployed on whimsy, where it runs in read-only mode: https://whimsy.apache.org/status/svn > It might be useful if ASF::SVN raised an error instead of returning > nil when it cannot find the location. > It's not always easy to debug the errors that occur when the SVN dir > is not found. So... it would be helpful if there were two versions of the method to find an SVN directory, one where it is important that the directory is found, and one where the directory is optional (per above). I've now made ASF::SVN.find! and ASF::SVN.find (with and without an exclamation point) methods, and made the [] operator call the find! method for now. - Sam Ruby