Author: stefan2
Date: Fri Oct 18 11:22:21 2013
New Revision: 1533392
URL: http://svn.apache.org/r1533392
Log:
Remove some unnecessary work from from our "ls" code.
* subversion/libsvn_client/list.c
(get_dir_contents): don't attempt to match locks when there are none
* subversion/libsvn_ra_svn/client.c
(ra_svn_get_dir): according to the protocol spec, we send the name
of the dirents (i.e. 1 segment) -- never a multi-
segment relpath. There is nothing to canonicalize.
Modified:
subversion/trunk/subversion/libsvn_client/list.c
subversion/trunk/subversion/libsvn_ra_svn/client.c
Modified: subversion/trunk/subversion/libsvn_client/list.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/list.c?rev=1533392&r1=1533391&r2=1533392&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/list.c (original)
+++ subversion/trunk/subversion/libsvn_client/list.c Fri Oct 18 11:22:21 2013
@@ -128,6 +128,10 @@ get_dir_contents(apr_uint32_t dirent_fie
}
SVN_ERR(err);
+ /* Locks will often be empty. Prevent pointless lookups in that case. */
+ if (locks && apr_hash_count(locks) == 0)
+ locks = NULL;
+
/* Filter out svn:externals from all properties hash. */
if (prop_hash)
prop_val = svn_hash_gets(prop_hash, SVN_PROP_EXTERNALS);
Modified: subversion/trunk/subversion/libsvn_ra_svn/client.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_svn/client.c?rev=1533392&r1=1533391&r2=1533392&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_svn/client.c (original)
+++ subversion/trunk/subversion/libsvn_ra_svn/client.c Fri Oct 18 11:22:21 2013
@@ -1340,7 +1340,7 @@ static svn_error_t *ra_svn_get_dir(svn_r
SVN_ERR(svn_ra_svn__parse_tuple(elt->u.list, pool, "cwnbr(?c)(?c)",
&name, &kind, &size, &has_props,
&crev, &cdate, &cauthor));
- name = svn_relpath_canonicalize(name, pool);
+
dirent = svn_dirent_create(pool);
dirent->kind = svn_node_kind_from_word(kind);
dirent->size = size;/* FIXME: svn_filesize_t */