Hi all!
This time this patch adds the ra_svn/svnserve support. I could really use your
help in reviewing the patch and eliminating potential bugs or things that
weren't done optimally.
Check:
http://www.iglu.org.il/shlomif/svn-patches/peg-revision-tng-rev13.patch
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+URL. 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.
* 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().
Added the declaration of svn_ra_dav__get_repos_root(). It is being
made global because I need to use it outside its file.
* subversion/libsvn_ra_dav/session.c
Made svn_ra_dav__get_repos_root() global instead of static.
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.
>>>
(also here:
http://www.iglu.org.il/shlomif/svn-patches/peg-revision-tng-rev13.log.txt
)
To do:
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.
3. Remove the remaining cruft (cmds.gdb file, etc.) from the patch.
4. Forward-port to the latest revision. (currently against 9245).
5. Verify that all the tests run correctly with this patch.
Enjoy!
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 Sat Apr 24 09:15:05 2004