You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2016/03/06 13:08:07 UTC
svn commit: r1733803 - /subversion/trunk/subversion/libsvn_fs_x/tree.c
Author: stefan2
Date: Sun Mar 6 12:08:07 2016
New Revision: 1733803
URL: http://svn.apache.org/viewvc?rev=1733803&view=rev
Log:
Remove native support for the old-style changed paths retrieval API from FSX.
This reduces the effort for also making the internal processing streamy.
The code path had been unused for FSX anyway.
* subversion/libsvn_fs_x/tree.c
(construct_fs_id,
construct_fs_path_change,
x_paths_changed): Remove.
Modified:
subversion/trunk/subversion/libsvn_fs_x/tree.c
Modified: subversion/trunk/subversion/libsvn_fs_x/tree.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_x/tree.c?rev=1733803&r1=1733802&r2=1733803&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_x/tree.c (original)
+++ subversion/trunk/subversion/libsvn_fs_x/tree.c Sun Mar 6 12:08:07 2016
@@ -2236,155 +2236,6 @@ x_get_file_delta_stream(svn_txdelta_stre
/* Finding Changes */
-/* Construct a new FS API ID object for CHANGE in ROOT using CONTEXT.
- Allocate the result in RESULT_POOL and use SCRATCH_POOL for temporaries.
- */
-static svn_error_t *
-construct_fs_id(const svn_fs_id_t **id,
- svn_fs_root_t *root,
- svn_fs_x__id_context_t *context,
- svn_fs_x__change_t *change,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- dag_node_t *node;
- if (change->change_kind == svn_fs_path_change_delete)
- {
- /* CHANGE->PATH got deleted. Its ID is the one it had previously,
- * i.e. the ID of the same relative child within the parent's
- * predecessor. */
- const char *parent_path;
- const char *basename;
- const svn_fs_x__id_t *parent_predecessor_id;
- dag_node_t *parent_predecessor;
-
- SVN_ERR_ASSERT(!svn_fspath__is_root(change->path.data,
- change->path.len));
- parent_path = svn_fspath__dirname(change->path.data, scratch_pool);
- basename = svn_fspath__basename(change->path.data, scratch_pool);
-
- /* Get the predecessor of CHANGE->PATH's parent. */
- SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, parent_path,
- scratch_pool));
- parent_predecessor_id = svn_fs_x__dag_get_predecessor_id(node);
- SVN_ERR(svn_fs_x__dag_get_node(&parent_predecessor, root->fs,
- parent_predecessor_id,
- scratch_pool, scratch_pool));
-
- /* Get the node's predecessor. */
- SVN_ERR(svn_fs_x__dag_open(&node, parent_predecessor, basename,
- scratch_pool, scratch_pool));
- SVN_ERR_ASSERT(node);
- }
- else
- {
- SVN_ERR(svn_fs_x__get_temp_dag_node(&node, root, change->path.data,
- scratch_pool));
- }
-
- *id = svn_fs_x__id_create(context, svn_fs_x__dag_get_id(node),
- result_pool);
-
- return SVN_NO_ERROR;
-}
-
-/* Copy CHANGE within ROOT into a FS API object allocated in RESULT_POOL
- and return it in *RESULT_P. Pass CONTEXT to the ID API object being
- created and use SCRATCH_POOL for temporary allocations. */
-static svn_error_t *
-construct_fs_path_change(svn_fs_path_change2_t **result_p,
- svn_fs_root_t *root,
- svn_fs_x__id_context_t *context,
- svn_fs_x__change_t *change,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- const svn_fs_id_t *id;
- svn_fs_path_change2_t *result;
-
- SVN_ERR(construct_fs_id(&id, root, context, change, result_pool,
- scratch_pool));
-
- result = svn_fs__path_change_create_internal(id, change->change_kind,
- result_pool);
-
- result->text_mod = change->text_mod;
- result->prop_mod = change->prop_mod;
- result->node_kind = change->node_kind;
-
- result->copyfrom_known = change->copyfrom_known;
- result->copyfrom_rev = change->copyfrom_rev;
- result->copyfrom_path = change->copyfrom_path;
-
- result->mergeinfo_mod = change->mergeinfo_mod;
-
- *result_p = result;
-
- return SVN_NO_ERROR;
-}
-
-/* Set *CHANGED_PATHS_P to a newly allocated hash containing
- descriptions of the paths changed under ROOT. The hash is keyed
- with const char * paths and has svn_fs_path_change2_t * values. Use
- POOL for all allocations. */
-static svn_error_t *
-x_paths_changed(apr_hash_t **changed_paths_p,
- svn_fs_root_t *root,
- apr_pool_t *pool)
-{
- apr_hash_t *changed_paths;
- svn_fs_path_change2_t *path_change;
- svn_fs_x__id_context_t *context
- = svn_fs_x__id_create_context(root->fs, pool);
- apr_pool_t *iterpool = svn_pool_create(pool);
-
- if (root->is_txn_root)
- {
- apr_hash_index_t *hi;
- SVN_ERR(svn_fs_x__txn_changes_fetch(&changed_paths, root->fs,
- svn_fs_x__root_txn_id(root),
- pool));
- for (hi = apr_hash_first(pool, changed_paths);
- hi;
- hi = apr_hash_next(hi))
- {
- svn_fs_x__change_t *change = apr_hash_this_val(hi);
-
- svn_pool_clear(iterpool);
- SVN_ERR(construct_fs_path_change(&path_change, root, context,
- change, pool, iterpool));
- apr_hash_set(changed_paths,
- apr_hash_this_key(hi), apr_hash_this_key_len(hi),
- path_change);
- }
- }
- else
- {
- apr_array_header_t *changes;
- int i;
-
- SVN_ERR(svn_fs_x__get_changes(&changes, root->fs, root->rev, pool));
-
- changed_paths = svn_hash__make(pool);
- for (i = 0; i < changes->nelts; ++i)
- {
- svn_fs_x__change_t *change = APR_ARRAY_IDX(changes, i,
- svn_fs_x__change_t *);
-
- svn_pool_clear(iterpool);
- SVN_ERR(construct_fs_path_change(&path_change, root, context,
- change, pool, iterpool));
- apr_hash_set(changed_paths, change->path.data, change->path.len,
- path_change);
- }
- }
-
- svn_pool_destroy(iterpool);
- *changed_paths_p = changed_paths;
-
- return SVN_NO_ERROR;
-}
-
/* Implement changes_iterator_vtable_t.get for in-txn change lists.
There is no specific FSAP data type, a simple APR hash iterator
to the underlying collection is sufficient. */