Checkout Tools
  • last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
On the 'move-tracking-2' branch: Make all externally visible identifiers

private, by renaming them to contain a double underscore and begin with a

limited number of prefixes (svn_branch__, svn_element__, svn_eid__).

  1. … 24 more files in changeset.
On the 'move-tracking-2' branch: Remove most of my special hash and array

iteration utilities, leaving just a few particularly useful variants.

* subversion/include/svn_iter.h,

subversion/libsvn_subr/iter.c

(svn_array_*,

svn_hash_*,

svn_iter_t,

etc.): Delete.

(svn_int_hash_get,

svn_int_hash_set,

svn_int_hash_this_key): Rename and move ...

* subversion/include/private/svn_element.h

subversion/libsvn_delta/element.c

(svn_eid_hash_get,

svn_eid_hash_set,

svn_eid_hash_this_key): ... to these.

(svn_eid__hash_iter_t,

svn_eid__hash_sorted_first,

svn_eid__hash_sorted_next,

svn_eid__hash_sort_compare_items_by_eid,

SVN_EID__HASH_ITER_SORTED,

SVN_EID__HASH_ITER_SORTED_BY_EID): New.

Update all callers to use either existing APR functions or the new

svn_eid_* functions.

  1. … 10 more files in changeset.
On the 'move-tracking-2' branch: Refactoring: remove the plain function

'svn_branch_get_element_tree_at_eid' and use virtual class methods instead.

Also tweak the signature of 'svn_branch_state_get_elements' following

r1713431.

* subversion/include/private/svn_branch.h

(svn_branch_get_element_tree_at_eid): Delete.

(SVN_BRANCH_SEQUENCE_POINT): Delete.

(svn_branch_state_get_elements): Remove 'const' from the return type.

* subversion/include/private/svn_branch_impl.h

(branch_state_v_get_elements_t): Remove 'const' from the return type.

* subversion/include/private/svn_element.h,

subversion/libsvn_delta/element.c

(svn_element_tree_get_subtree_at_eid): New, extracted from

'svn_branch_get_element_tree_at_eid'.

* subversion/libsvn_delta/branch.c

(branch_txn_branch,

copy_subtree): Use 'svn_element_tree_get_subtree_at_eid' instead of

'svn_branch_get_element_tree_at_eid'.

(branch_state_get_element,

svn_branch_state_get_elements): Remove 'const' from the return type.

(svn_branch_get_element_tree_at_eid): Delete.

* subversion/libsvn_delta/branch_compat.c

(convert_branch_to_paths): Track the constness change.

* subversion/libsvn_delta/branch_nested.c

(svn_branch_get_immediate_subbranches): Track the constness change.

(svn_branch_get_subtree): Use 'svn_element_tree_get_subtree_at_eid'

instead of 'svn_branch_get_element_tree_at_eid'.

* subversion/libsvn_ra/ra_loader.c

(txn_fetch_payloads): Track the constness change.

* subversion/svnmover/merge3.c

(detect_clashes,

detect_cycles,

detect_orphans,

branch_merge_subtree_r): Track the constness change.

* subversion/svnmover/svnmover.c

(txn_is_changed,

svn_branch_replay,

list_branch_elements,

list_branch_elements_by_eid): Track the constness change.

  1. … 9 more files in changeset.
On the 'move-tracking-2' branch: Refactoring: Allow public subclassing of

branch classes.

* subversion/include/private/svn_branch_impl.h

Rename and move...

* subversion/libsvn_delta/branch_private.h

... from here.

* subversion/libsvn_delta/branch.c,

subversion/libsvn_delta/branch_compat.c,

subversion/libsvn_delta/branch_nested.c

Update the '#include'.

  1. … 4 more files in changeset.
On the 'move-tracking-2' branch: Refactoring in the 'branch state' class:

replace some plain functions with virtual methods.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_state_get_elements,

svn_branch_state_get_element): New methods...

(svn_branch_get_element_tree,

svn_branch_get_elements,

svn_branch_get_element): ... replacing these.

(branch_state_create): Add them to the vtable.

(svn_branch_get_path_by_eid,

svn_branch_state_serialize): Update callers.

* subversion/libsvn_delta/branch_private.h

(branch_state_v_get_elements_t,

branch_state_v_get_element_t): New function types.

(svn_branch_state_vtable_t): Add them to the vtable.

* subversion/include/private/svn_branch_nested.h,

subversion/libsvn_delta/branch_nested.c

(svn_branch_find_nested_branch_element_by_relpath,

svn_branch_get_immediate_subbranches,

svn_branch_get_subbranch_at_eid,

svn_branch_get_subtree): Change function signatures to include an error

return.

Update all callers.

* subversion/libsvn_delta/branch_compat.c

subversion/libsvn_delta/branch_repos.c,

subversion/libsvn_ra/ra_loader.c,

subversion/svnmover/merge3.c,

subversion/svnmover/svnmover.c

Update all callers, changing local function signatures to return an error

where necessary.

  1. … 9 more files in changeset.
On the 'move-tracking-2' branch: Remove svn_branch_instantiate_elements()

from the public API and reimplement svn_branch_instantiate_elements_r() in a

way that will work with a class derived from the branch_state class.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(branch_instantiate_elements): Rename from

'svn_branch_instantiate_elements' and make private.

(branch_txn_branch): Track the rename.

* subversion/libsvn_delta/branch_nested.c

(branch_instantiate_elements): New function, similar to the one above but

using the public methods of the branch_state class.

(svn_branch_instantiate_elements_r): Use it.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Remove a remnant of nesting from the branch

txn API: take the new branch id directly, rather an outer branch id and an

outer eid.

* subversion/include/private/svn_branch.h

subversion/libsvn_delta/branch.c

(branch_txn_open_branch,

branch_txn_branch,

svn_branch_txn_open_branch,

svn_branch_txn_branch): Take the new branch id directly, rather an outer

branch id and an outer eid.

* subversion/libsvn_delta/branch_compat.c

(compat_branch_txn_open_branch,

compat_branch_txn_branch): Same.

* subversion/libsvn_delta/branch_nested.c

(nested_branch_txn_open_branch,

nested_branch_txn_branch): Same.

* subversion/libsvn_delta/branch_private.h

(branch_txn_v_open_branch_t,

branch_txn_v_branch_t): Same.

* subversion/svnmover/svnmover.c

(svn_branch_replay,

merge_subbranch,

mk_branch,

do_branch,

do_topbranch): Adjust callers to provide the new branch id.

  1. … 5 more files in changeset.
On the 'move-tracking-2' branch: Virtualize two more 'branch txn' methods.

Ensure derived classes initialize the public member variables.

This continues the refactoring to use branch txn/state objects instead of

a single 'editor'.

* subversion/include/private/svn_branch.h

(svn_branch_txn_serialize): Move function parameters to the usual order.

* subversion/libsvn_delta/branch.c

(svn_branch_txn_finalize_eids,

svn_branch_txn_serialize): Split into a static implementation and a

public dispatcher.

(branch_txn_create): Move further down the file. Add the new methods to

the vtable.

(svn_branch_txn_get_branch_by_id): Use only public methods so this does

not need to be virtual.

* subversion/libsvn_delta/branch_nested.c

(nested_branch_txn_finalize_eids,

nested_branch_txn_serialize): New.

(svn_nested_branch_txn_create): Add the new methods to the vtable.

Initialize the public member variables.

* subversion/libsvn_delta/branch_private.h

(branch_txn_v_finalize_eids_t,

branch_txn_v_serialize_t): New.

(svn_branch_txn_vtable_t): Add the new methods.

* subversion/libsvn_ra/ra_loader.c

(svn_branch_revision_fetch_info,

store_repos_info): Track the parameter order change.

* subversion/svnmover/svnmover.c

(execute): Track the parameter order change.

  1. … 5 more files in changeset.
On the 'move-tracking-2' branch: Hide some data members in the branch txn

class.

This continues the refactoring to use branch txn/state objects instead of

a single 'editor'.

* subversion/include/private/svn_branch.h

(svn_branch_txn_t): Move 'first_eid', 'next_eid' from here.

(svn_branch_txn_get_num_new_eids): New.

* subversion/libsvn_delta/branch.c

(svn_branch_txn_priv_t): Move 'first_eid', 'next_eid' to here.

(branch_txn_get_num_new_eids,

svn_branch_txn_get_num_new_eids): New.

(branch_txn_create): Add it to the vtable.

(EID_IS_ALLOCATED,

branch_txn_new_eid,

svn_branch_txn_finalize_eids,

svn_branch_txn_parse,

svn_branch_txn_serialize): Track the move.

* subversion/libsvn_delta/branch_nested.c

(nested_branch_txn_get_num_new_eids): New.

(svn_nested_branch_txn_create): Add it to the vtable.

* subversion/libsvn_delta/branch_private.h

(branch_txn_v_get_num_new_eids_t): New.

(svn_branch_txn_vtable_t): Add it to the vtable.

* subversion/libsvn_delta/compat3e.c

(editor3_alter): Remove an obsolete usage.

* subversion/svnmover/svnmover.c

(subtree_replay): Remove direct access to the 'first_eid' field.

(allocate_eids): New.

(wc_commit): Allocate here instead, using the new method instead of direct

access.

  1. … 5 more files in changeset.
On the 'move-tracking-2' branch: Add an 'abort' method to the txn class.

This continues the refactoring to use branch txn/state objects instead of

a single 'editor'.

* subversion/include/private/svn_branch.h

(svn_branch_txn_abort): New.

* subversion/libsvn_delta/branch.c

(branch_txn_abort,

svn_branch_txn_abort): New.

(branch_txn_create): Add it.

* subversion/libsvn_delta/branch_nested.c

(nested_branch_txn_abort): New.

(svn_nested_branch_txn_create): Add it.

* subversion/libsvn_delta/branch_private.h

(branch_txn_v_abort_t): New.

(svn_branch_txn_vtable_t): Add it.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Add a 'complete' method to the txn class.

This continues the refactoring to use branch txn/state objects instead of

a single 'editor'.

* subversion/include/private/svn_branch.h

(svn_branch_txn_complete): New.

* subversion/libsvn_delta/branch.c

(branch_txn_complete,

svn_branch_txn_complete): New.

(branch_txn_create): Add it.

* subversion/libsvn_delta/branch_nested.c

(nested_branch_txn_complete): New.

(svn_nested_branch_txn_create): Add it.

* subversion/libsvn_delta/branch_private.h

(branch_txn_v_complete_t): New.

(svn_branch_txn_vtable_t): Add it.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Virtualize access to private data in the

branch txn object.

* subversion/include/private/svn_branch.h

(svn_branch_txn_get_branches): Constify the txn pointer.

(svn_branch_txn_add_branch): New.

* subversion/libsvn_delta/branch.c

(branch_txn_get_branches,

branch_txn_add_branch,

branch_txn_add_new_branch,

branch_txn_delete_branch,

svn_branch_txn_get_branches,

svn_branch_txn_add_branch,

svn_branch_txn_add_new_branch,

svn_branch_txn_delete_branch,

branch_txn_create): Virtualize these four accessors for private data (the

'branches' array).

(svn_branch_txn_finalize_eids,

svn_branch_txn_get_branch_by_id,

svn_branch_txn_parse,

svn_branch_state_serialize): Make these 'public' functions use the

virtual accessors.

* subversion/libsvn_delta/branch_nested.c

(nested_branch_txn_get_branches,

nested_branch_txn_add_branch,

nested_branch_txn_add_new_branch,

nested_branch_txn_delete_branch,

svn_nested_branch_txn_create):

Add forwarding implementations for the new virtual methods.

* subversion/libsvn_delta/branch_private.h

(branch_txn_v_get_branches_t,

branch_txn_v_add_branch_t,

branch_txn_v_add_new_branch_t,

branch_txn_v_delete_branch_t,

svn_branch_txn_vtable_t):

Declare the new virtual methods.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Make branch txn methods return branch state

objects instead of branch ids.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(branch_txn_open_branch,

branch_txn_branch,

svn_branch_txn_open_branch,

svn_branch_txn_branch): Output a branch state object instead of a branch

id.

* subversion/libsvn_delta/branch_private.h

(branch_txn_v_open_branch_t,

branch_txn_v_branch_t): Same.

* subversion/libsvn_delta/branch_nested.c

(nested_branch_txn_open_branch,

nested_branch_txn_branch): Same.

* subversion/libsvn_delta/compat3e.c

(editor3_open_branch,

editor3_branch): Adjust callers.

  1. … 4 more files in changeset.
On the 'move-tracking-2' branch: Allow an output pointer to be null.

* subversion/libsvn_delta/branch_nested.c

(nested_branch_txn_branch): Allow the output pointer to be null.

On the 'move-tracking-2' branch: Refactoring: Move the handling of nested

branches into a branch txn class that wraps a basic branch txn class.

* subversion/include/private/svn_branch_nested.h

(svn_nested_branch_txn_create): New.

* subversion/libsvn_delta/branch_nested.c

(branch_in_rev_or_txn): Move here from compat3e.c.

(svn_branch_txn_priv_t,

svn_nested_branch_txn_create): New.

nested_branch_txn_new_eid,

nested_branch_txn_open_branch,

nested_branch_txn_branch,

nested_branch_txn_sequence_point): New, with implementations moved from

compat3e.c.

* subversion/libsvn_delta/compat3e.c

(branch_in_rev_or_txn): Move to branch_nested.c.

(editor3_new_eid,

editor3_open_branch,

editor3_branch,

editor3_sequence_point): Move implementations to branch_nested.c, and

instead wrap a nested-branch-txn object around the plain txn.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Minor refactoring.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_txn_add_new_branch): Rename from 'svn_branch_add_new_branch'.

Move 'txn' parameter to the first parameter.

(svn_branch_txn_delete_branch): Take a branch-id instead of a branch

pointer. Allow returning an error.

Delete an old commented-out suggestion for an element structure.

* subversion/libsvn_delta/branch_nested.c

(svn_branch_instantiate_elements_r): Track the changes.

* subversion/libsvn_delta/compat3e.c

(editor3_open_branch,

editor3_branch,

editor3_sequence_point): Track the changes.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Rename 'revision_root' to 'txn'.

* subversion/include/private/svn_branch.h

(svn_branch_txn_t,

svn_branch_txn_create,

svn_branch_txn_get_branches,

svn_branch_txn_get_branch_by_id,

svn_branch_txn_new_eid,

svn_branch_txn_finalize_eids,

svn_branch_txn_delete_branch,

svn_branch_txn_parse,

svn_branch_txn_serialize): Rename from *_revision_root_*.

Rename struct members and function arguments similarly.

* subversion/include/private/svn_branch_repos.h,

subversion/include/private/svn_editor3e.h,

subversion/include/private/svn_ra_private.h,

subversion/libsvn_delta/branch.c,

subversion/libsvn_delta/branch_nested.c,

subversion/libsvn_delta/branch_repos.c,

subversion/libsvn_delta/compat3e.c,

subversion/libsvn_ra/ra_loader.c,

subversion/svnmover/svnmover.c

Track these changes, and make similar changes nearly everywhere.

  1. … 9 more files in changeset.
On the 'move-tracking-2' branch: Rename a struct and its functions,

following r1708631.

* subversion/include/private/svn_element.h,

subversion/libsvn_delta/element.c

(svn_element_content_t,

svn_element_content_create,

svn_element_content_dup,

svn_element_content_equal): Renamed from 'svn_branch_el_rev_content_*'.

* subversion/include/private/svn_branch.h,

subversion/include/private/svn_editor3e.h,

subversion/libsvn_delta/branch.c,

subversion/libsvn_delta/branch_nested.c,

subversion/libsvn_delta/compat3e.c,

subversion/libsvn_delta/editor3e.c,

subversion/svnmover/svnmover.c

Update all callers/users.

  1. … 8 more files in changeset.
On the 'move-tracking-2' branch: More refactoring, disentangling the concept

of nested branches from the basic concept of branches, following r1708550.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_state_t): Move the element mapping into a sub-structure.

(svn_branch_root_eid,

svn_branch_get_element_tree,

svn_branch_get_element_tree_at_eid): New.

(svn_branch_el_rev_content_t,

svn_branch_el_rev_content_create,

svn_branch_el_rev_content_dup,

svn_branch_el_rev_content_equal): Move to element.c/h.

(svn_branch_subtree_t,

svn_branch_subtree_create,

svn_branch_subtree_get_subbranch_at_eid): Move to branch_nested.c/h.

(svn_branch_get_element_tree_at_eid): Rename from

'svn_branch_get_subtree_n' and change the return type.

(svn_branch_instantiate_elements,

svn_branch_map_add_subtree): Change an input parameter type.

(svn_branch_subtree_get_path_by_eid): Delete; the replacement is

'svn_element_tree_get_path_by_eid'.

(map_purge_orphans): Delete; the replacement is

'svn_element_tree_purge_orphans'.

* subversion/include/private/svn_branch_nested.h,

subversion/libsvn_delta/branch_nested.c

(svn_branch_subtree_t,

svn_branch_subtree_create,

(svn_branch_subtree_get_subbranch_at_eid): Moved from branch.c/h.

* subversion/include/private/svn_element.h,

subversion/libsvn_delta/element.c

(svn_branch_el_rev_content_t,

svn_branch_el_rev_content_create,

svn_branch_el_rev_content_dup,

svn_branch_el_rev_content_equal): Move from branch.c/h.

(svn_element_tree_t,

svn_element_tree_create,

svn_element_tree_get,

svn_element_tree_set,

svn_element_tree_purge_orphans,

svn_element_tree_get_path_by_eid): New.

* subversion/libsvn_delta/compat3e.c

Update all callers/users.

* subversion/svnmover/svnmover.c

Update all callers/users.

  1. … 7 more files in changeset.
On the 'move-tracking-2' branch: Disentangle the concept of nested branches

from the basic concept of branches.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_state_t,

svn_branch_state_create,

svn_branch_add_new_branch): Add a branch-id field, and delete the outer-

branch and outer-eid fields.

(svn_branch_get_element): Remove an assertion which need not be true, and

which with the new code is not always true.

Move some functions to svn_branch_nested.h and branch_nested.c.

* subversion/include/private/svn_branch_repos.h,

subversion/libsvn_delta/branch_repos.c

Move some functions to svn_branch_nested.h and branch_nested.c.

* subversion/include/private/svn_branch_nested.h,

subversion/libsvn_delta/branch_nested.c

New files.

* subversion/libsvn_delta/compat3e.c

(branch_get_top_num): Delete.

(branch_get_storage_root_rrpath,

editor3_open_branch,

editor3_branch,

drive_changes,

editor3_sequence_point): Adjust accordingly.

* subversion/svnmover/svnmover.c

(branch_id_str,

do_branch_into,

point_to_outer_element_instead,

execute): Adjust accordingly.

* subversion/tests/cmdline/svnmover_tests.py

(merge_swap_abc,

move_to_related_branch_2): Adjust expected outputs of the '--ui=serial'

listing to account for branch root paths no longer being included in the

serialization format.

* subversion/tests/cmdline/svntest/wc.py

(_re_parse_eid_branch,

State.from_eids): Adjust to account for branch root paths no longer being

included in the serialization format.

  1. … 9 more files in changeset.