Fix for issue 2151 "'svn ls' is slow over ra_dav"
This patch implements a solution to issue 2151. We now only request
the needed props in the PROPFIND for server listings. 'svn ls' is now
noticably faster. In most cases 'ls' takes about half the time and
half the bandwidth - In some case even better results.
For backward compatibility, before doing the long PROPFIND we make
another simpler PROPFIND to see if the server supports the new type of
request (supports the deadprop-count prop). If it does we use the new
scheme and performance is improved - If not then we use the old scheme
and the slowness persists.
To summarise: only patched servers and patched clients have improved
speed. Mismatched configurations (old client or server) are not
improved but still work. Regular dav
clients are still slow.
Patch by: Jean-Marc Godbout <email@example.com>
Suggested by: Erik Scrafford <firstname.lastname@example.org>
Ben Collins-Sussman <email@example.com>
Everyone else who contributed to issue 2151
(SVN_PROPID_deadprop_count): Added a PROPID to support the new prop
(dav_svn_props): Added the deadprop-count prop to the list of
(case SVN_PROPID_deadprop_count): Returns the number of deadprops
found in the fs for that file.
(SVN_RA_DAV__PROP_DEADPROP_COUNT): Added the prop name for deadprop
(ELEM_deadprop_count): Added the prop to the list of props
(elem_definition, propfind_elements): Added ELEM_deadprop_count
to the list of propfind props
(dirent_props): list of props to get in a dirent PROPFIND
(root_props): list of props to get in a root PROPFIND
(supports_deadprop_count): indicates if the server supports
the deadprop_count prop
(prop_count): the number of user props for the current dirent
as returned by the server
Received on Mon Aug 29 03:19:14 2005
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com