Checkout
stefan2
committed
on 16 May 11
Reverted in r1103671.

Eliminate unnecessary stat calls during checkout, part 2 of 2.

If provided as parameter, svn_wc__db_wcroot_parse_loc… Show more
Reverted in r1103671.

Eliminate unnecessary stat calls during checkout, part 2 of 2.

If provided as parameter, svn_wc__db_wcroot_parse_local_abspath

does not need to use a stat call to detect the kind of node

behind the given abspath. For many *frequent* callers that

is known.

* subversion/libsvn_wc/wc_db_private.h

 (svn_wc__db_wcroot_parse_local_abspath): add kind parameter

* subversion/libsvn_wc/wc_db_wcroot.c

 (svn_wc__db_wcroot_parse_local_abspath): stat for kind of

  if it is not already known

* subversion/libsvn_wc/wc_db_pristine.c

 (svn_wc__db_pristine_get_path, svn_wc__db_pristine_read,

  svn_wc__db_pristine_get_tempdir, svn_wc__db_pristine_install,

  svn_wc__db_pristine_get_md5, svn_wc__db_pristine_get_sha1,

  svn_wc__db_pristine_remove, svn_wc__db_pristine_cleanup,

  svn_wc__db_pristine_check): don't use the optimization

* subversion/libsvn_wc/wc_db.c

 (kind_by_filesize): new utility function

 (get_statement_for_path, svn_wc__db_to_relpath,

  svn_wc__db_from_relpath, svn_wc__db_get_wcroot,

  svn_wc__db_base_add_symlink, add_absent_excluded_not_present_node,

  svn_wc__db_base_get_info, svn_wc__db_base_get_children,

  svn_wc__db_base_clear_dav_cache_recursive, svn_wc__db_external_add_file,

  svn_wc__db_external_add_symlink, svn_wc__db_external_remove,

  svn_wc__db_external_read, svn_wc__db_external_read_pristine_props,

  svn_wc__db_external_read_props, svn_wc__db_op_copy,

  svn_wc__db_op_copy_shadowed_layer, svn_wc__db_op_copy_file,

  svn_wc__db_op_copy_symlink, svn_wc__db_op_add_symlink,

  svn_wc__db_op_set_props, svn_wc__db_op_set_changelist,

  svn_wc__db_op_mark_resolved, svn_wc__db_op_set_tree_conflict,

  svn_wc__db_op_revert, svn_wc__db_revert_list_read,

  svn_wc__db_revert_list_notify, svn_wc__db_op_read_all_tree_conflicts,

  svn_wc__db_op_read_tree_conflict, svn_wc__db_op_remove_node,

  svn_wc__db_temp_op_remove_working, svn_wc__db_op_delete,

  svn_wc__db_read_info, svn_wc__db_read_pristine_info,

  svn_wc__db_read_node_install_info, svn_wc__db_read_url,

  svn_wc__db_read_props, svn_wc__db_read_props_streamily,

  svn_wc__db_read_pristine_props, svn_wc__db_read_children_of_working_node,

  svn_wc__db_node_check_replace, svn_wc__db_read_children,

  svn_wc__db_global_commit, svn_wc__db_global_update,

  svn_wc__db_op_bump_revisions_post_update, svn_wc__db_lock_add,

  svn_wc__db_lock_remove, svn_wc__db_scan_base_repos,

  svn_wc__db_scan_addition, svn_wc__db_scan_deletion,

  svn_wc__db_wq_add, svn_wc__db_wq_fetch, svn_wc__db_wq_completed,

  svn_wc__db_read_conflict_victims, svn_wc__db_read_conflicts,

  svn_wc__db_read_kind, svn_wc__db_node_hidden, svn_wc__db_is_wcroot,

  svn_wc__db_temp_wcroot_tempdir, svn_wc__db_wclock_obtain,

  svn_wc__db_wclock_release, svn_wc__db_wclock_owns_lock,

  svn_wc__db_temp_op_start_directory_update, svn_wc__db_temp_op_make_copy,

  svn_wc__db_temp_op_set_text_conflict_marker_files,

  svn_wc__db_temp_op_set_property_conflict_marker_file,

  svn_wc__db_temp_op_set_new_dir_to_incomplete,

  svn_wc__db_info_below_working, svn_wc__db_get_not_present_descendants,

  svn_wc__db_min_max_revisions, svn_wc__db_is_sparse_checkout,

  svn_wc__db_has_switched_subtrees, svn_wc__db_get_absent_subtrees,

  svn_wc__db_has_local_mods, svn_wc__db_revision_status,

  svn_wc__db_base_get_lock_tokens_recursive, svn_wc__db_verify):

  don't use the optimization

 (svn_wc__db_base_add_directory, svn_wc__db_base_get_children_info,

  svn_wc__db_external_add_dir, svn_wc__db_op_copy_dir,

  svn_wc__db_op_add_directory, svn_wc__db_op_set_base_depth,

  svn_wc__db_read_children_info, svn_wc__db_read_children_walker_info,

  svn_wc__db_global_relocate, svn_wc__db_temp_get_format,

  svn_wc__db_temp_get_access, svn_wc__db_temp_set_access,

  svn_wc__db_temp_close_access, svn_wc__db_temp_clear_access,

  svn_wc__db_temp_borrow_sdb, svn_wc__db_temp_op_end_directory_update):

  path parameters are known to be directories

 (svn_wc__db_base_add_file, svn_wc__db_op_add_file):

  path parameters are known to be files

 (svn_wc__db_external_record_fileinfo, svn_wc__db_global_record_fileinfo):

  path parameters are files, if the file length is > 0. Show less