Log Message: |
Reuse RA sessions with update --parents.
Prior code would walk up the tree and open a new RA session for each missing
parent. This meant over DAV that for n missing parents you needed n RA
sessions, and along with that (n*2)+1 OPTIONS requests. This change still
needs n REPORT requests but that's a more intrustive change for later.
Using the new code and checking out the subversion tree with depth empty from
the ASF repo and then updating with --parents the deepest tree we have halves
the update time over the old code.
* subversion/libsvn_client/update.c
(update_internal): Add a new ra_session_p argument and handle reparenting
if the session can be reused. Save any new ra_sessions in the ra_session_p
argument for reuse.
(svn_client__update_internal): Update the update_internal() calls.
|