Log Message: |
Handle 'svn:ignore' and 'svn:global-ignores' values as a single list for
status processing and for svn_wc_get_ignores2().
This patch simplifies some status code and makes a very expensive check per
directory that contains unversioned files cheaper.
On my profile working copy with unversioned files in every directory, but
no local changes this accounts for a +- 6% performance improvement on
'svn status'
(The amount of CPU time spend on obtaining these properties was reduced by 50%)
* subversion/libsvn_wc/props.c
(svn_wc__get_iprops): Update caller.
* subversion/libsvn_wc/status.c
(collect_ignore_patterns): Obtain a single list of patterns. Remove had_props
optimization as that doesn't help for inherited properties anyway.
(send_unversioned_item,
one_child_status,
get_dir_status): Remove inherited specialized code.
(svn_wc_get_ignores2): Update code to really obtain all ignore patterns, as
documented.
* subversion/libsvn_wc/wc_db.c
(db_read_inherited_props): Add actual_props argument. Constify output array.
Use db query directly to calculate whether the parent is what it should be
and inherited property eligability with a single query. Obtain actual props
if requested.
Note that we are not really interested in switched paths here, but just if
the parent directory is the parent of the child we are obtaining information
for.
(svn_wc__db_read_inherited_props): Obtain actual_props if requested.
* subversion/libsvn_wc/wc_db.h
(svn_wc__db_read_inherited_props): Update documentation and prototype.
|