When receiving a log, the ra_svn layer spends most of its runtime building hashes (changes paths and revprops), checking paths and filtering revprops.  Let's trim the fat here.
When receiving a log, the ra_svn layer spends most of its runtime
building hashes (changes paths and revprops), checking paths and
filtering revprops.  Let's trim the fat here.

* subversion/libsvn_ra_svn/client.c
  (parse_iproplist,
   ra_svn_get_dir,
   ra_svn_get_mergeinfo): use our custom hash function to speed up the
                          construction of hashes from incoming data
  (ra_svn_log): check only once whether we want the standard revprops;
                receive paths as svn_string_t to know their lengths;
                canonicalize paths only if necessary (rarely the case)

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

YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion