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 2014/12/21 13:43:37 UTC
svn commit: r1647131 - in
/subversion/branches/fsx-id/subversion/libsvn_fs_x: dag.c fs.h low_level.c
noderevs.c temp_serializer.c transaction.c
Author: stefan2
Date: Sun Dec 21 12:43:37 2014
New Revision: 1647131
URL: http://svn.apache.org/r1647131
Log:
On the fsx-id branch: Get rid of the last svn_fs_id_t in our noderev struct.
It has been kept for convenience but is now hardly used anymore. Construct
the respective API object on demand.
* subversion/libsvn_fs_x/fs.h
(node_revision_t): Drop ID member.
* subversion/libsvn_fs_x/low_level.c
(svn_fs_x__read_noderev): One element less to initialize.
* subversion/libsvn_fs_x/noderevs.c
(svn_fs_x__noderevs_get,
svn_fs_x__noderevs_get_func): Same.
* subversion/libsvn_fs_x/temp_serializer.c
(svn_fs_x__noderev_serialize,
svn_fs_x__noderev_deserialize): One sub-struct less to (de-)serialize.
* subversion/libsvn_fs_x/dag.c
(copy_node_revision): One element less to copy.
(svn_fs_x__dag_get_fs_id): Construct API level ID instead of copying it.
(svn_fs_x__dag_copy): One element less to initialize.
* subversion/libsvn_fs_x/transaction.c
(create_new_txn_noderev_from_rev): Directly initialize the noderev-ID.
(svn_fs_x__get_txn,
svn_fs_x__create_node): No longer use the API level ID as intermediary.
(svn_fs_x__add_change): Construct the API level ID on demand.
(svn_fs_x__create_successor,
write_final_rev: Directly assign the returned ID object.
Modified:
subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c
subversion/branches/fsx-id/subversion/libsvn_fs_x/fs.h
subversion/branches/fsx-id/subversion/libsvn_fs_x/low_level.c
subversion/branches/fsx-id/subversion/libsvn_fs_x/noderevs.c
subversion/branches/fsx-id/subversion/libsvn_fs_x/temp_serializer.c
subversion/branches/fsx-id/subversion/libsvn_fs_x/transaction.c
Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c?rev=1647131&r1=1647130&r2=1647131&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/dag.c Sun Dec 21 12:43:37 2014
@@ -120,7 +120,6 @@ copy_node_revision(node_revision_t *node
apr_pool_t *pool)
{
node_revision_t *nr = apr_pmemdup(pool, noderev, sizeof(*noderev));
- nr->id = svn_fs_x__id_copy(noderev->id, pool);
if (noderev->copyfrom_path)
nr->copyfrom_path = apr_pstrdup(pool, noderev->copyfrom_path);
@@ -201,7 +200,8 @@ svn_fs_x__dag_get_fs_id(const svn_fs_id_
{
node_revision_t *noderev;
SVN_ERR(get_node_revision(&noderev, node));
- *id = svn_fs_x__id_copy(noderev->id, result_pool);
+ *id = svn_fs_x__id_create(&noderev->node_id, &noderev->noderev_id,
+ result_pool);
return SVN_NO_ERROR;
}
@@ -1276,7 +1276,6 @@ svn_fs_x__dag_copy(dag_node_t *to_node,
/* Create a successor with its predecessor pointing at the copy
source. */
to_noderev->predecessor_id = to_noderev->noderev_id;
- to_noderev->id = NULL;
if (to_noderev->predecessor_count != -1)
to_noderev->predecessor_count++;
to_noderev->created_path =
Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/fs.h?rev=1647131&r1=1647130&r2=1647131&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/fs.h (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/fs.h Sun Dec 21 12:43:37 2014
@@ -486,9 +486,6 @@ typedef struct node_revision_t
/* node kind */
svn_node_kind_t kind;
- /* The node-id for this node-rev. */
- const svn_fs_id_t *id;
-
/* Predecessor node revision id. Will be "unused" if there is no
predecessor for this node revision. */
svn_fs_x__id_part_t predecessor_id;
Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/low_level.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/low_level.c?rev=1647131&r1=1647130&r2=1647131&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/low_level.c (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/low_level.c Sun Dec 21 12:43:37 2014
@@ -446,9 +446,6 @@ svn_fs_x__read_noderev(node_revision_t *
SVN_ERR(read_id_part(&noderev->node_id, headers, HEADER_NODE));
SVN_ERR(read_id_part(&noderev->copy_id, headers, HEADER_COPY));
- noderev->id = svn_fs_x__id_create(&noderev->node_id, &noderev->noderev_id,
- result_pool);
-
/* Read the type. */
value = svn_hash_gets(headers, HEADER_TYPE);
Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/noderevs.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/noderevs.c?rev=1647131&r1=1647130&r2=1647131&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/noderevs.c (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/noderevs.c Sun Dec 21 12:43:37 2014
@@ -430,9 +430,6 @@ svn_fs_x__noderevs_get(node_revision_t *
SVN_ERR(get_id(&noderev->predecessor_id, container->ids,
binary_noderev->predecessor_id));
- noderev->id = svn_fs_x__id_create(&noderev->node_id, &noderev->noderev_id,
- pool);
-
if (binary_noderev->flags & NODEREV_HAS_COPYFROM)
{
noderev->copyfrom_path
@@ -879,9 +876,6 @@ svn_fs_x__noderevs_get_func(void **out,
SVN_ERR(get_id(&noderev->predecessor_id, &ids,
binary_noderev->predecessor_id));
- noderev->id = svn_fs_x__id_create(&noderev->node_id, &noderev->noderev_id,
- pool);
-
if (binary_noderev->flags & NODEREV_HAS_COPYFROM)
{
noderev->copyfrom_path
Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/temp_serializer.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/temp_serializer.c?rev=1647131&r1=1647130&r2=1647131&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/temp_serializer.c (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/temp_serializer.c Sun Dec 21 12:43:37 2014
@@ -338,7 +338,6 @@ svn_fs_x__noderev_serialize(svn_temp_ser
sizeof(*noderev));
/* serialize sub-structures */
- svn_fs_x__id_serialize(context, &noderev->id);
serialize_representation(context, &noderev->prop_rep);
serialize_representation(context, &noderev->data_rep);
@@ -368,7 +367,6 @@ svn_fs_x__noderev_deserialize(void *buff
return;
/* fixup of sub-structures */
- svn_fs_x__id_deserialize(noderev, (svn_fs_id_t **)&noderev->id, pool);
svn_temp_deserializer__resolve(noderev, (void **)&noderev->prop_rep);
svn_temp_deserializer__resolve(noderev, (void **)&noderev->data_rep);
Modified: subversion/branches/fsx-id/subversion/libsvn_fs_x/transaction.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-id/subversion/libsvn_fs_x/transaction.c?rev=1647131&r1=1647130&r2=1647131&view=diff
==============================================================================
--- subversion/branches/fsx-id/subversion/libsvn_fs_x/transaction.c (original)
+++ subversion/branches/fsx-id/subversion/libsvn_fs_x/transaction.c Sun Dec 21 12:43:37 2014
@@ -1174,8 +1174,8 @@ create_new_txn_noderev_from_rev(svn_fs_t
/* For the transaction root, the copyroot never changes. */
- noderev->id = svn_fs_x__id_txn_create_root(txn_id, pool);
- noderev->noderev_id = *svn_fs_x__id_noderev_id(noderev->id);
+ noderev->noderev_id.change_set = svn_fs_x__change_set_by_txn(txn_id);
+ noderev->noderev_id.number = SVN_FS_X__ITEM_INDEX_ROOT_NODE;
return svn_fs_x__put_node_revision(fs, noderev, TRUE, pool);
}
@@ -1414,19 +1414,17 @@ svn_fs_x__get_txn(transaction_t **txn_p,
{
transaction_t *txn;
node_revision_t *noderev;
- svn_fs_id_t *root_id;
txn = apr_pcalloc(pool, sizeof(*txn));
txn->proplist = apr_hash_make(pool);
SVN_ERR(get_txn_proplist(txn->proplist, fs, txn_id, pool));
- root_id = svn_fs_x__id_txn_create_root(txn_id, pool);
+ txn->root_id = svn_fs_x__id_txn_create_root(txn_id, pool);
SVN_ERR(svn_fs_x__get_node_revision(&noderev, fs,
- svn_fs_x__id_noderev_id(root_id),
+ svn_fs_x__id_noderev_id(txn->root_id),
pool, pool));
- txn->root_id = svn_fs_x__id_copy(noderev->id, pool);
txn->base_id = svn_fs_x__id_create(&noderev->node_id,
&noderev->predecessor_id, pool);
txn->copies = NULL;
@@ -1631,27 +1629,22 @@ svn_fs_x__create_node(const svn_fs_id_t
svn_fs_x__txn_id_t txn_id,
apr_pool_t *pool)
{
- svn_fs_x__id_part_t node_id;
- const svn_fs_id_t *id;
- apr_uint64_t number;
-
/* Get a new node-id for this node. */
- SVN_ERR(get_new_txn_node_id(&node_id, fs, txn_id, pool));
+ SVN_ERR(get_new_txn_node_id(&noderev->node_id, fs, txn_id, pool));
+
+ /* Assign copy-id. */
+ noderev->copy_id = *copy_id;
- /* Item number within this change set. */
- SVN_ERR(allocate_item_index(&number, fs, txn_id, pool));
+ /* Noderev-id = Change set and item number within this change set. */
+ noderev->noderev_id.change_set = svn_fs_x__change_set_by_txn(txn_id);
+ SVN_ERR(allocate_item_index(&noderev->noderev_id.number, fs, txn_id,
+ pool));
/* Construct the ID object from all the above parts. */
- id = svn_fs_x__id_txn_create(&node_id, txn_id, number, pool);
- noderev->id = id;
- noderev->copy_id = *copy_id;
- noderev->node_id = node_id;
- noderev->noderev_id = *svn_fs_x__id_noderev_id(id);
+ *id_p = svn_fs_x__id_create(&noderev->node_id, &noderev->noderev_id, pool);
SVN_ERR(svn_fs_x__put_node_revision(fs, noderev, FALSE, pool));
- *id_p = id;
-
return SVN_NO_ERROR;
}
@@ -1822,7 +1815,7 @@ svn_fs_x__add_change(svn_fs_t *fs,
{
node_revision_t *noderev;
SVN_ERR(svn_fs_x__get_node_revision(&noderev, fs, id, pool, pool));
- fs_id = noderev->id;
+ fs_id = svn_fs_x__id_create(&noderev->node_id, id, pool);
}
/* Not using APR_BUFFERED to append change in one atomic write operation. */
@@ -2466,8 +2459,8 @@ svn_fs_x__create_successor(const svn_fs_
SVN_ERR(allocate_item_index(&new_noderev->noderev_id.number, fs, txn_id,
pool));
- new_noderev->id = svn_fs_x__id_create(&new_noderev->node_id,
- &new_noderev->noderev_id, pool);
+ *new_id_p = svn_fs_x__id_create(&new_noderev->node_id,
+ &new_noderev->noderev_id, pool);
if (! new_noderev->copyroot_path)
{
new_noderev->copyroot_path
@@ -2478,8 +2471,6 @@ svn_fs_x__create_successor(const svn_fs_
SVN_ERR(svn_fs_x__put_node_revision(fs, new_noderev, FALSE, pool));
- *new_id_p = new_noderev->id;
-
return SVN_NO_ERROR;
}
@@ -2943,9 +2934,7 @@ write_final_rev(const svn_fs_id_t **new_
SVN_ERR(store_l2p_index_entry(fs, txn_id, my_offset,
noderev->noderev_id.number, pool));
- new_id = svn_fs_x__id_create(&noderev->node_id, &noderev->noderev_id,
- pool);
- noderev->id = new_id;
+ new_id = svn_fs_x__id_create(&noderev->node_id, &noderev->noderev_id, pool);
if (ffd->rep_sharing_allowed)
{
@@ -3011,7 +3000,7 @@ write_final_rev(const svn_fs_id_t **new_
SVN_ERR(store_p2l_index_entry(fs, txn_id, &entry, pool));
/* Return our ID that references the revision file. */
- *new_id_p = noderev->id;
+ *new_id_p = new_id;
return SVN_NO_ERROR;
}