[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH] Get-Locations TNG Rev. 26 - Using the New Specification

From: Shlomi Fish <shlomif_at_iglu.org.il>
Date: 2004-04-28 21:35:24 CEST

Well here's the get-locations patch - this time using the new specification
that was detailed here:

http://www.contactor.se/~dast/svn/archive-2004-04/1367.shtml

Here's the log:

<<<
Adds an libsvn_fs layer function to efficiently trace the file historical (and
to a limited extent) location based on its peg revision+path. Also adds a
callack that implements it to the RA vtable and bindings to it from
libsvn_ra_local, libsvn_ra_dav and libsvn_ra_svn. It also implements the
server-side handlers.

* build.conf
  Compile ra-get-past-location, which is a command line client for this
  functionality to facilitate testing.
  Added past_loc_test.py to the command line tests.

* include/svn_fs.h
  Added the declaration of svn_fs_trace_node_locations().

* include/svn_ra.h
  Added the get_locations binding to the bottom of svn_ra_plugin_t.

* libsvn_fs/tree.c
  Added the definition of svn_fs_trace_node_locations with two
  accessory functions.

* libsvn_ra_local/ra_plugin.c
  Added the definition of svn_ra_local__get_locations, a binding
  to the RA vtable callback that handles the operation.
  Added it to the end of the libsvn_ra_local vtable.

* subversion/mod_dav_svn/log.c
  Added the definition of dav_svn__get_locations_report() which handles
  the <S:get-locations> report and response. It has a helper function
  send_get_locations_report().

* subversion/mod_dav_svn/version.c
  (dav_svn_deliver_report): Added an appropriate case directive to
  handle the get-locations report.

* subversion/mod_dav_svn/dav_svn.h
  Added the declaration of dav_svn__get_locations_report().

* tests/libsvn_ra_local/get-past-location.c
  (new file): a simple standalone command line client that queries for
  the historical URLs at other revisions of a certain URL at a peg revision.

* tests/clients/cmdline/past_loc_tests.py
  (new file): a test suite to test the past revision functionality.

* subversion/libsvn_ra_svn/client.c
  Added the ra_svn_get_locations() handler, and added it to the plugin
  vtable.

* subversion/libsvn_ra_dav/ra_dav.h
  Added the new elements to the enum.
  Added the declaration of svn_ra_dav__get_locations().
  
* subversion/libsvn_ra_dav/session.c
  Added svn_ra_dav__get_locations to the ra_dav plugin's vtable.

* subversion/libsvn_ra_dav/fetch.c
  Added the definition of svn_ra_dav__get_locations() and helper functions
  , struct declarations and comments. This function implements the
  get_locations() handler() for ra_dav.

* subversion/svnserve/serve.c
  Added the get_locations() handler for the get-locations command.
  Added it to the main_command[] map.
>>>

And here's the to do list:

<<<
1. Get feedback on the places marked with "TODO" (in all caps) in the patch.

2. If there's a need, change the behaviour of the ra_dav handler to inform the
upper layer that the server does not support this operation and it should
trace the locations using the log instead. I can use sussman's input on this.

Likewise for ra_svn.

3. Document the get-locations protocol extensions in the appropriate places
for WebDAV and the SVN Custom Protocol.

4. Add Subpooling logic where appropriate.

5. Get this patch reviewed by other people.

6. Add a new test helper and some tests to test various relative path
related quirks in get_locations().
>>>

Cheers!

        Shlomi Fish

-- 
---------------------------------------------------------------------
Shlomi Fish      shlomif@iglu.org.il
Homepage:        http://shlomif.il.eu.org/
Quidquid latine dictum sit, altum viditur.
        [Whatever is said in Latin sounds profound.]


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Received on Wed Apr 28 21:31:33 2004

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.