Avoid a bunch of unnecessary database queries during the post-commit deltification phase in Berkeley DB repositories.
Avoid a bunch of unnecessary database queries during the post-commit
deltification phase in Berkeley DB repositories.

deltify_mutable(), when recursing, iterates over directory entries,
calling itself.  The first thing it does is check the provided path's
node kind and node-revision-ID.  But both of those pieces of
information are already available in the entries over which the caller
is iterating!  So, this change just lets the caller pass the
information it already has on hand into deltify_mutable().  This has
significant impact in some situations.  On a test repository
containing a directory of almost 20,000 files, commit which removed 10
of those files at a time went from spending 13 minutes in delification
to just a few seconds.

* subversion/libsvn_fs_base/tree.c
  (deltify_mutable): Add 'node_id' and 'kind' parameters.  Avoid
    querying for those bits of information when provided by the caller.
    And *do* provide that information in recursive calls.
  (svn_fs_base__deltify): Update call to deltify_mutable().

git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@871894 13f79535-47bb-0310-9956-ffa450edef68

YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion