In FSX, push the usage of the size limiting get-changes-context further down the callstack.
We now pass it down to the block-read level jus…
In FSX, push the usage of the size limiting get-changes-context furtherdown the callstack.We now pass it down to the block-read level just after the data has beenread from disk and will get cached. For packed (container) data, thisis the end of the line because we must read whole containers. OTOH, evenin memory, they use only 1/4th of the memory of the API level objects.Giant change lists might get split across multiple containers at somepoint in the future.Non-packed change lists do still use some transitional code. The nextchanges will then read and cache only limited-size blocks of these insteadwhole change lists.* subversion/libsvn_fs_x/changes.h (svn_fs_x__changes_get_list): Add a CONTEXT to the signature to restrict the result to a sub-range of the list.* subversion/libsvn_fs_x/changes.c (svn_fs_x__changes_get_list): Restrict the range of changes accordingly.* subversion/libsvn_fs_x/cached_data.c (block_read): Add a BATON to pass alongside the desired ID. (get_node_revision_body, create_rep_state_body, read_delta_window, read_container_window): Update callers. These don't use the BATON. (svn_fs_x__get_changes): Pass the CONTEXT further down to the block-read and no longer trim the result locally. (block_read_changes): "Manually" trim the result to exclude the changes already reported according to CONTEXT. (block_read_changes_container): Extract only the changes needed as per CONTEXT. (block_read): Pass the BATON down to the change list readers.