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