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

[PATCH] Fix for issue 2151 "'svn ls' is slow over ra_dav"

From: Jean-Marc Godbout <jmgodbout_at_gmail.com>
Date: 2005-08-29 03:18:28 CEST

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 <jean-marc@computrad.com>

Suggested by: Erik Scrafford <erik@scrafford.org>
                      Ben Collins-Sussman <sussman@collab.net>
                      Everyone else who contributed to issue 2151

* subversion/mod_dav_svn/liveprops.c
 (SVN_PROPID_deadprop_count): Added a PROPID to support the new prop
 (dav_svn_props[]): Added the deadprop-count prop to the list of
  supported props.
 (case SVN_PROPID_deadprop_count): Returns the number of deadprops
  found in the fs for that file.

* subversion/libsvn_ra_dav/ra_dav.h
  (SVN_RA_DAV__PROP_DEADPROP_COUNT): Added the prop name for deadprop
  (ELEM_deadprop_count): Added the prop to the list of props

 * subversion/libsvn_ra_dav/props.c
  (elem_definition, propfind_elements): Added ELEM_deadprop_count
   to the list of propfind props
 * subversion/libsvn_ra_dav/fetch.c
  (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

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

Received on Mon Aug 29 03:19:14 2005

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.