In ra_neon, cache starting props when first seen, to reduce round trips.

Patch by: Daniel Shahaf <d.s@daniel.shahaf.co.il>
(Tweaked by me.)

* subversion/libsvn_ra_neon/ra_neon.h
  (svn_ra_neon__session_t):  New member 'vcc'.
  (svn_ra_neon__get_starting_props,
   svn_ra_neon__search_for_starting_props): Document the caching
     behavior, because it's visible and we now depend on it.

* subversion/libsvn_ra_neon/props.c
  (svn_ra_neon__get_starting_props):  Cache VCC and UUID in the session.
  (svn_ra_neon__get_vcc):  Look in the cache first.
  (svn_ra_neon__get_baseline_props):
    Call __get_vcc() to get the VCC.
    Change local variable 'vcc' to 'const char *' from 'svn_string_t *'.
  (svn_ra_neon__get_baseline_info):
    Call __get_starting_props() instead of calling
    svn_ra_neon__get_props_resource() directly.

* subversion/libsvn_ra_neon/session.c
  (svn_ra_neon__open):  Initialize cached fields to NULL.
  (svn_ra_neon__do_get_uuid):  Rely on __get_starting_props() to cache
    the UUID.

* subversion/libsvn_ra_neon/commit.c (apply_revprops):
    Call __get_vcc() to get the VCC, to take advantage of the cache.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@870740 13f79535-47bb-0310-9956-ffa450edef68
4 files changed