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. */