On the sqlite-mergeinfo-without-mergeinfo branch:

In FSFS, stop using libsvn_fs_util to implement svn_fs_get_mergeinfo.
Instead, just implement it ourself, using the information we have in
the noderevs about where mergeinfo is.

* subversion/libsvn_fs_fs/tree.c
  (append_to_merged_froms): New helper, kind of like
   append_component_to_paths in mergeinfo-sqlite-index, except that we
   use it just once instead of once per path component, and it does a
   deep copy of the rangelists.
  (get_mergeinfo_hash_for_path): New function to calculate mergeinfo
   for a given path.  This is the function that implements
   inheritance.  Similar to get_mergeinfo_for_path in
   mergeinfo-sqlite-index, but instead of being recursive and
   lengthening the merged-from-path one component at a time, just does
   it all at once.  Also, doesn't need to look up svn:mergeinfo on
   nodes that don't have it.  Also, doesn't maintain a cache; if we
   have performance issues we can add it back later.
  (get_mergeinfo_hashes_for_paths): New function, similar to
   get_mergeinfo in mergeinfo-sqlite-index; calls the previous
   function a bunch while swimming.
  (fs_get_mergeinfo): New implementation of svn_fs_get_mergeinfo,
   using the previous helpers instead of libsvn_fs_util.
  (root_vtable): Use our new implementation.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/sqlite-mergeinfo-without-mergeinfo@868218 13f79535-47bb-0310-9956-ffa450edef68
1 file changed