Checkout Tools
  • last updated 7 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1649066 is being indexed.

In FSX, complete the renaming of global structs to meet our coding

guidelines. This is part of a series of search-replace changes.

* subversion/libsvn_fs_x/fs.h

(svn_fs_x__data_t): Update docstring.

(change_t): Rename to ...

(svn_fs_x__change_t): ... this.

* subversion/libsvn_fs_x/changes.c

* subversion/libsvn_fs_x/changes.h

* subversion/libsvn_fs_x/low_level.c

* subversion/libsvn_fs_x/low_level.h

* subversion/libsvn_fs_x/temp_serializer.c

* subversion/libsvn_fs_x/temp_serializer.h

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_fs_x/tree.c

(): s/change_t/svn_fs_x__change_t/g

  1. … 8 more files in changeset.
Merge branches/fsx-id in /trunk, remove the BRANCH-README and

resolve trivial conflicts.

  1. … 27 more files in changeset.
* subversion/libsvn_fs_x/changes.c

(svn_fs_x__read_changes_container): Fix 64 -> 32 bit int conversion warning.

Since we only select the *initial*

array capacity here, we may as well

potentially shorten to int.

FSX ID API cleanup: name things properly and remove unused functions.

* subversion/libsvn_fs_x/id.h

(svn_fs_x__id_txn_used,

svn_fs_x__id_txn_reset): Remove unused API function declarations.

(svn_fs_x__id_rev_item): Rename to ...

(svn_fs_x__id_noderev_id): ... this unified accessor.

(svn_fs_x__id_rev_create): Rename to ...

(svn_fs_x__id_create): ... this and name the noderev_id parameter as such.

This is now a unified rev / txn creator function.

* subversion/libsvn_fs_x/id.c

(svn_fs_x__id_txn_used,

svn_fs_x__id_txn_reset): Remove.

(svn_fs_x__id_rev_item): Rename to ...

(svn_fs_x__id_noderev_id): ... this. Always return the id part because

this is now the unified accessor.

(svn_fs_x__id_rev_create): Rename to ...

(svn_fs_x__id_create): ... this and update parameter name.

* subversion/libsvn_fs_x/changes.c

(append_change,

svn_fs_x__changes_get_list,

svn_fs_x__read_changes_container,

svn_fs_x__changes_get_list_func): Simplify using the new unified ID

accessor and constructor API.

* subversion/libsvn_fs_x/noderevs.c

(binary_id_t): Name noderev_id properly.

(store_id,

get_id,

svn_fs_x__write_noderevs_container,

svn_fs_x__read_noderevs_container): Update following the struct member

and ID API renames.

* subversion/libsvn_fs_x/cached_data.c

(get_node_revision_body,

svn_fs_x__get_node_revision,

svn_fs_x__get_mergeinfo_count): API callers follow the rename.

* subversion/libsvn_fs_x/pack.c

(copy_node_to_temp): Ditto

* subversion/libsvn_fs_x/transaction.c

(write_final_rev): Same.

* subversion/libsvn_fs_x/tree.c

(x_node_relation): Same.

  1. … 7 more files in changeset.
In FSX, unifify the concept of revision and transaction numbers and

call it a "change set".

The mapping is trivial (revs == non-neg change sets, txns are negative

change set numbers) and a few conversion functions are being provided.

As a first step, we use it in fs_x__id_t to represent the noderev_id

unifying txn_id and rev_item. The API is kept unchanged but the textual

representation changes.

* subversion/libsvn_fs_x/id.h

(svn_fs_x__change_set_t): Define the new change set number type.

(SVN_FS_X__INVALID_CHANGE_SET): Define the corresponding NULL value.

(svn_fs_x__is_revision,

svn_fs_x__is_txn,

svn_fs_x__get_revnum,

svn_fs_x__get_txn_id,

svn_fs_x__change_set_by_rev,

svn_fs_x__change_set_by_txn): Declare new conversion & check functions.

(svn_fs_x__id_part_t): Replace REVISION with CHANGE_SET.

* subversion/libsvn_fs_x/id.c

(fs_x__id_t): Replace TXN_ID and REV_NUM by NODEREV_ID.

(svn_fs_x__is_revision,

svn_fs_x__is_txn,

svn_fs_x__get_revnum,

svn_fs_x__get_txn_id,

svn_fs_x__change_set_by_rev,

svn_fs_x__change_set_by_txn): Declare new conversion & check functions.

(txn_id_parse): Drop because we don't have separate txn ids anymore.

(part_parse): Store ID parts as <number[+,-]change_set> with both

elements encoded in base36.

(unparse_id_part): Rename to ...

(part_unparse): ... this and re-implement.

(svn_fs_x__id_part_is_root,

svn_fs_x__id_part_eq): Update due to struct member rename.

(svn_fs_x__id_txn_id): Extract the txn id from the noderev change set.

(svn_fs_x__id_rev_item): Make sure to return a well-defined "invalid" /

"unused" struct for non-revision IDs.

(svn_fs_x__id_rev): Extract the revnum from the noderev change set.

(svn_fs_x__id_item): Update due to struct member rename.

(svn_fs_x__id_is_txn): Use the new change set number API.

(svn_fs_x__id_unparse): Simplify writing just the 3 ID parts.

(svn_fs_x__id_eq): Adapt to struct change.

(svn_fs_x__id_check_related): Update check for TXN IDs.

(svn_fs_x__id_part_compare,

svn_fs_x__id_txn_create_root,

svn_fs_x__id_create_root,

svn_fs_x__id_txn_create,

svn_fs_x__id_rev_create): Adapt to struct update.

(svn_fs_x__id_parse): Simplify as we just have to parse 3 id parts.

* subversion/libsvn_fs_x/changes.c

(binary_change_t): Rename REV_ID to NODEREV_ID.

(append_change): Update to rename and usage of change set numbers.

(svn_fs_x__write_changes_container,

svn_fs_x__read_changes_container): Adapt to struct member renames.

(svn_fs_x__changes_get_list,

svn_fs_x__changes_get_list_func): Adapt to ID API changes.

* subversion/libsvn_fs_x/transaction.c

(get_new_txn_node_id,

svn_fs_x__reserve_copy_id,

rep_write_contents_close,

write_hash_delta_rep,

get_final_id,

write_final_rev): Use change set instead of revision numbers and say

"noderev_id" instead of "rev_item".

* subversion/libsvn_fs_x/fs_x.c

(write_revision_zero): Update rev 0 template to use the new ID format.

* subversion/libsvn_fs_x/noderevs.c

(svn_fs_x__write_noderevs_container,

svn_fs_x__read_noderevs_container): Adapt to id part member rename.

* subversion/libsvn_fs_x/verify.c

(compare_l2p_to_p2l_index,

compare_p2l_to_l2p_index): Convert from and to change set numbers as

required by the APIs and follow renames.

* subversion/libsvn_fs_x/cached_data.c

(get_node_revision_body,

svn_fs_x__get_node_revision,

svn_fs_x__get_mergeinfo_count,

init_rep_state,

svn_fs_x__get_representation_length,

block_read_changes,

block_read_changes_container,

block_read_noderevs_container,

block_read_reps_container,

block_read): Ditto

* subversion/libsvn_fs_x/pack.c

(add_item_rep_mapping,

get_item,

copy_rep_to_temp,

copy_node_to_temp,

compare_p2l_info,

compare_sub_items,

compare_p2l_info_rev,

write_reps_containers,

write_l2p_index): Same.

* subversion/libsvn_fs_x/index.c

(svn_fs_x__p2l_index_create,

read_entry): Ditto.

* subversion/libsvn_fs_x/tree.c

(x_node_origin_rev): Ditto.

  1. … 10 more files in changeset.
For TXN IDs in FSX, use a single integer instead of a two-part struct.

This allows for packing the TXN ID into the same struct that holds

the revision info for committed data.

Most of this commit is code churn replacing (pointers to) structs with

the new integer value. Similarly, NULL values cannot be used anymore

and must be replaced by the new SVN_FS_X__INVALID_TXN_ID constant.

* subversion/libsvn_fs_x/id.h

(svn_fs_x__txn_id_t): Define the new data type for TXN IDs.

(SVN_FS_X__INVALID_TXN_ID): Define the corresponding NULL constant.

(svn_fs_x__id_txn_parse,

svn_fs_x__id_txn_unparse): Drop. These will be replaced by new

private API functions in utils.h

(svn_fs_x__id_txn_used,

svn_fs_x__id_txn_reset,

svn_fs_x__txn_id_t svn_fs_x__id_txn_id,

svn_fs_x__id_txn_create_root,

svn_fs_x__id_txn_create): Switch TXN_ID type in these APIs

from struct to integer type.

* subversion/libsvn_fs_x/id.c

(fs_x__id_t): Use the new data type to store the TXN_ID member.

(txn_id_parse): Simplify calling the new utils API function.

(svn_fs_x__id_txn_used,

svn_fs_x__id_txn_reset): Update function signature and "no value" handling.

(svn_fs_x__id_txn_parse,

svn_fs_x__id_txn_unparse): Drop.

(svn_fs_x__id_txn_id,

svn_fs_x__id_is_txn): Update function signatures and TXN_ID references.

(svn_fs_x__id_unparse): Update serializer to write the TXN_ID as a single

value instead of a value pair.

(svn_fs_x__id_eq): The struct has become smaller.

(svn_fs_x__id_check_related): TXN_ID-based checks are now simple.

(svn_fs_x__id_txn_create_root,

svn_fs_id_t *svn_fs_x__id_create_root): Update function signatures and

TXN_ID references.

(svn_fs_x__id_create_root,

svn_fs_x__id_rev_create,

svn_fs_x__id_parse): Update TXN_ID references and "no value" handling.

* subversion/libsvn_fs_x/util.h

(svn_fs_x__txn_name,

svn_fs_x__txn_by_name): Declare new utility API functions that

convert TXN IDs from / to string.

(svn_fs_x__path_txn_dir,

svn_fs_x__path_txn_sha1,

svn_fs_x__path_txn_changes,

svn_fs_x__path_l2p_proto_index,

svn_fs_x__path_p2l_proto_index,

svn_fs_x__path_txn_props,

svn_fs_x__path_txn_props_final,

svn_fs_x__path_txn_next_ids,

svn_fs_x__path_txn_item_index,

svn_fs_x__path_txn_proto_rev,

svn_fs_x__path_txn_proto_rev_lock): Switch TXN_ID type in these APIs

from struct to integer type.

* subversion/libsvn_fs_x/util.c

(svn_fs_x__txn_name,

svn_fs_x__txn_by_name): Implement these new conversion functions using

out base36 converters.

(combine_txn_id_string): Call the new TXN_ID -> string conversion API.

(svn_fs_x__path_txn_dir,

svn_fs_x__path_txn_sha1,

svn_fs_x__path_txn_changes,

svn_fs_x__path_l2p_proto_index,

svn_fs_x__path_p2l_proto_index,

svn_fs_x__path_txn_props,

svn_fs_x__path_txn_props_final,

svn_fs_x__path_txn_next_ids,

svn_fs_x__path_txn_item_index,

svn_fs_x__path_txn_proto_rev,

svn_fs_x__path_txn_proto_rev_lock): Switch TXN_ID types in function

signatures.

* subversion/libsvn_fs_x/cached_data.c

(open_and_seek_revision,

open_and_seek_transaction,

open_and_seek_representation,

get_node_revision_body,

svn_fs_x__get_mergeinfo_count,

create_rep_state_body,

build_rep_list,

auto_set_start_offset,

get_dir_contents,

svn_fs_x__get_proplist,

svn_fs_x__get_changes,

block_read): Update function callers to use numbers instead of

pointers for txn_ids.

* subversion/libsvn_fs_x/verify.c

(compare_l2p_to_p2l_index,

compare_p2l_to_l2p_index): Ditto.

* subversion/libsvn_fs_x/changes.c

(binary_change_t): Document mapping of TXN_IDs onto ID part structs.

(append_change,

svn_fs_x__changes_get_list,

svn_fs_x__changes_get_list_func): Change storage and retrieval of

TXN IDs accordingly.

* subversion/libsvn_fs_x/dag.h

(svn_fs_x__dag_set_entry,

svn_fs_x__dag_txn_root,

svn_fs_x__dag_txn_base_root,

svn_fs_x__dag_clone_child,

svn_fs_x__dag_clone_root,

svn_fs_x__dag_delete,

svn_fs_x__dag_make_file,

svn_fs_x__dag_make_dir,

svn_fs_x__dag_copy):

svn_fs_x__path_txn_proto_rev_lock): Switch TXN_ID type in these APIs

from struct to integer type.

* subversion/libsvn_fs_x/dag.c

(set_entry,

make_entry,

svn_fs_x__dag_set_entry,

svn_fs_x__dag_txn_root,

svn_fs_x__dag_txn_base_root,

svn_fs_x__dag_clone_child,

svn_fs_x__dag_clone_root,

svn_fs_x__dag_delete,

svn_fs_x__dag_make_file,

svn_fs_x__dag_make_dir,

svn_fs_x__dag_copy):

svn_fs_x__path_txn_proto_rev_lock): Switch TXN_ID types in function

signatures; they are all pass-

through values.

* subversion/libsvn_fs_x/fs.h

(fs_x_shared_txn_data_t,

representation_t): Use the new TXN_ID type instead of the old structs.

* subversion/libsvn_fs_x/index.h

(svn_fs_x__item_offset): Switch TXN_ID type from struct to integer type.

* subversion/libsvn_fs_x/index.c

(l2p_proto_index_lookup): Switch TXN_ID type in function signature; it is

a simple pass-through value.

(svn_fs_x__item_offset): Switch TXN_ID type in function signature and

update "no value" handling.

* subversion/libsvn_fs_x/low_level.c

(svn_fs_x__parse_representation,

read_rep_offsets,

svn_fs_x__unparse_representation,

svn_fs_x__unparse_representation): Adapt to TXN ID API changes.

* subversion/libsvn_fs_x/noderevs.c

(shared_representation_t): Use the new data type for the TXN ID member.

(svn_fs_x__write_noderevs_container,

svn_fs_x__read_noderevs_container): Simplify as we only need to write

and read single values instead of

structs for TXN IDs.

* subversion/libsvn_fs_x/transaction.h

(svn_fs_x__txn_get_id,

svn_fs_x__txn_changes_fetch,

svn_fs_x__get_txn,

svn_fs_x__reserve_copy_id,

svn_fs_x__create_node,

svn_fs_x__set_entry,

svn_fs_x__add_change,

svn_fs_x__create_successor,

svn_fs_x__get_txn_ids): Switch TXN_ID type from struct to integer type.

* subversion/libsvn_fs_x/transaction.c

(fs_txn_data_t): Use the new data type for the TXN ID member.

(svn_fs_x__txn_get_id): Update signature and TXN_ID reference.

(get_shared_txn,

free_shared_txn): Update signature, TXN_ID references and comparison.

(unlock_proto_rev_baton): Use the new data type for the TXN ID member.

(unlock_proto_rev_body): Update references to TXN_ID and use the new

utlis API to convert TXN_IDs into strings.

(unlock_proto_rev,

unlock_proto_rev_list_locked): Update signature and TXN_ID reference.

(get_writable_proto_rev_baton): Use the new data type for the TXN ID member.

(get_writable_proto_rev_body): Update references to TXN_ID and use the new

utlis API to convert TXN_IDs into strings.

(get_writable_proto_rev): Update signature and TXN_ID reference.

(purge_shared_txn_body,

purge_shared_txn): Switch baton from struct to pointer the new TXN_ID.

(store_sha1_rep_mapping): Update TXN_ID reference.

(svn_fs_x__txn_changes_fetch,

create_new_txn_noderev_from_rev): Update signatures.

(create_txn_dir): Update signatures as well as TXN_ID references and

use the new utlis API to convert a TXN_ID into string.

(svn_fs_x__create_txn): Update TXN_ID references.

(get_txn_proplist): Use new TXN_ID type in signature and update

TXN_ID value check.

(change_txn_props): Update TXN_ID references.

(svn_fs_x__get_txn,

write_next_ids,

read_next_ids,

get_new_txn_node_id,

svn_fs_x__reserve_copy_id,

svn_fs_x__create_node): Use new TXN_ID type in signature - pass-through

parameters only.

(svn_fs_x__purge_txn): Update TXN_ID references and types and use the new

utlis API to convert TXN_IDs into strings.

(set_uniquifier): Update TXN_ID reference.

(svn_fs_x__set_entry): Update signature and TXN_ID references.

(svn_fs_x__add_change,

store_l2p_index_entry,

store_p2l_index_entry,

allocate_item_index,

svn_fs_x__create_successor,

write_hash_delta_rep): Use new TXN_ID type in signature --

they are pass-through parameters only.

(get_shared_rep,

rep_write_contents_close,

svn_fs_x__set_proplist): Update TXN_ID references.

(write_hash_delta_rep): Use new TXN_ID type in signature --

they are pass-through parameters only

(write_final_rev): Use the new TXN_ID type internally and udapte

all TXN_ID references.

(write_final_changed_path_info,

verify_locks): Use new TXN_ID type in signature.

(verify_moves): Switch the signature to using the full TXN object

and get the base revision from that since TXN_IDs

don't provide this info anymore.

(write_final_revprop): Use new TXN_ID type in signature and adapt

to signature changes in called functions.

(svn_fs_x__open_txn,

svn_fs_x__delete_node_revision): Update references to TXN_IDs.

(svn_fs_x__get_txn_ids): Use new TXN_ID type in signature.

* subversion/libsvn_fs_x/tree.c

(fs_txn_root_data_t): Use the new data type for the TXN_ID member.

(make_txn_root): Use new TXN_ID type in signature.

(svn_fs_x__txn_id_t): Same and update TXN_ID reference.

(add_change,

merge): Use new TXN_ID type in signature.

(make_path_mutable,

x_change_node_prop,

x_make_dir,

x_delete_node): Use the correct TXN_ID type internally.

(copy_helper): Same and use the root objects to access the TXN

base revision because the TXN_ID does no longer

provide that information.

(x_make_file,

apply_textdelta,

apply_text): Use the correct TXN_ID type internally.

(make_txn_root): Update TXN_ID type in signature, update TXN_ID

references and call the new string conversion API.

  1. … 17 more files in changeset.
Store revision values in FSX change lists containers as signed integers

instead of unsigned ones.

* subversion/libsvn_fs_x/changes.c

(svn_fs_x__write_changes_container,

svn_fs_x__read_changes_container): use "int" instead of "uint" for revs

Silence a number of integer size conversion warnings by casting the output

of our rather generic reader functions to the correct target type.

* subversion/libsvn_fs_x/string_table.c

(svn_fs_x__read_string_table): explicitly cast to the target type

* subversion/libsvn_fs_x/reps.c

(svn_fs_x__read_reps_container): ditto

* subversion/libsvn_fs_x/noderevs.c

(svn_fs_x__read_noderes_container): ditto

* subversion/libsvn_fs_x/changes.c

(svn_fs_x__read_changes_container): ditto

* subversion/libsvn_subr/packed_data.c

(svn_packed__get_bytes): ditto

  1. … 4 more files in changeset.
Localized strings must not contain preprocessor macros.

* subversion/libsvn_fs_x/noderevs.c

(svn_fs_x__noderevs_get,

read_reps): use the double-escape trick for localized strings

as we already do in other places

* subversion/libsvn_fs_x/changes.c

(svn_fs_x__changes_get_list): ditto

* subversion/svnserve/serve.c

(log_cmd): ditto

* subversion/libsvn_fs_x/index.c

(l2p_page_get_offset): ditto; had to provide a pool

(l2p_page_access_func,

l2p_index_lookup): update callers

Found by: Mattias Engdegård <mattiase@bredband.net>

  1. … 3 more files in changeset.
[Reverted in r1597989]

Add MOVe support to FSX. This is mainly duplicating changes from FSFS.

* subversion/libsvn_fs_x/changes.c

(CHANGE_KIND_MOVE,

CHANGE_KIND_MOVEREPLACE): pro forma declaration of the new change kinds

* subversion/libsvn_fs_x/low_level.c

(ACTION_MOVE,

ACTION_MOVEREPLACE): declare new change type strings

(read_change,

write_change_entry): write / parse the new change types

* subversion/libsvn_fs_x/transaction.c

(replace_change): factored out from ...

(fold_change): ... this one; handle moves similar to adds

(process_changes): handle move-replaces similar to replaces

(write_final_changed_path_info): update move source revs to Rev-1;

make changed_paths an input parameter

(check_for_duplicate_move_source,

verify_moves): new move verification code

(commit_body): verify moves when finalizing the commit;

update function all

* subversion/libsvn_fs_x/tree.c

(enum copy_type_t): declare new parameter type

(copy_helper): support moves just like ADDs; add extra param checks

(x_copy,

x_revision_link): update callers

(x_move): add new function for MOVes

  1. … 3 more files in changeset.
* subversion/bindings/javahl/native/CommitEditor.h

* subversion/bindings/javahl/native/EditorProxy.h

* subversion/bindings/javahl/native/Iterator.h

* subversion/bindings/javahl/native/LockTokenTable.h

* subversion/bindings/javahl/native/RemoteSession.h

* subversion/bindings/javahl/native/RemoteSessionContext.h

* subversion/bindings/javahl/native/RevisionRangeList.h

* subversion/bindings/javahl/native/StateReporter.h

* subversion/include/private/svn_file.h

* subversion/include/private/svn_packed_data.h

* subversion/libsvn_fs_fs/cached_data.c

* subversion/libsvn_fs_fs/cached_data.h

* subversion/libsvn_fs_fs/hotcopy.c

* subversion/libsvn_fs_fs/hotcopy.h

* subversion/libsvn_fs_fs/low_level.c

* subversion/libsvn_fs_fs/low_level.h

* subversion/libsvn_fs_fs/pack.c

* subversion/libsvn_fs_fs/pack.h

* subversion/libsvn_fs_fs/recovery.c

* subversion/libsvn_fs_fs/recovery.h

* subversion/libsvn_fs_fs/revprops.c

* subversion/libsvn_fs_fs/revprops.h

* subversion/libsvn_fs_fs/transaction.c

* subversion/libsvn_fs_fs/transaction.h

* subversion/libsvn_fs_fs/util.c

* subversion/libsvn_fs_fs/util.h

* subversion/libsvn_fs_fs/verify.c

* subversion/libsvn_fs_fs/verify.h

* subversion/libsvn_fs_x/cached_data.c

* subversion/libsvn_fs_x/cached_data.h

* subversion/libsvn_fs_x/changes.c

* subversion/libsvn_fs_x/changes.h

* subversion/libsvn_fs_x/hotcopy.c

* subversion/libsvn_fs_x/hotcopy.h

* subversion/libsvn_fs_x/index.c

* subversion/libsvn_fs_x/index.h

* subversion/libsvn_fs_x/low_level.h

* subversion/libsvn_fs_x/noderevs.c

* subversion/libsvn_fs_x/noderevs.h

* subversion/libsvn_fs_x/pack.c

* subversion/libsvn_fs_x/pack.h

* subversion/libsvn_fs_x/recovery.c

* subversion/libsvn_fs_x/recovery.h

* subversion/libsvn_fs_x/reps.c

* subversion/libsvn_fs_x/reps.h

* subversion/libsvn_fs_x/revprops.h

* subversion/libsvn_fs_x/string_table.c

* subversion/libsvn_fs_x/string_table.h

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_fs_x/transaction.h

* subversion/libsvn_fs_x/util.h

* subversion/libsvn_ra_svn/deprecated.c

* subversion/libsvn_subr/compress.c

* subversion/libsvn_subr/file.c

* subversion/libsvn_subr/packed_data.c

* subversion/libsvn_subr/prefix_string.c

* subversion/libsvn_subr/utf8proc/utf8proc.c

* subversion/libsvn_subr/utf8proc/utf8proc.h

* subversion/libsvn_subr/utf8proc/utf8proc_data.c

* subversion/libsvn_subr/utf8proc.c

* subversion/tests/libsvn_fs_x/string-table-test.c

* subversion/tests/libsvn_subr/packed-data-test.c

* subversion/tests/libsvn_subr/prefix-string-test.c

* subversion/tests/libsvn_subr/priority-queue-test.c

(svn:eol-style): Set to native.

  1. … 63 more files in changeset.
Merge fsx branch into /trunk with no conflicts.

Remove BRANCH-README.

  1. … 83 more files in changeset.