Checkout Tools
  • last updated 12 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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 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: Remove special scratch pool handling from

branch txn and branch state classes, for simplicity and generality.

* subversion/libsvn_delta/branch_private.h,

(svn_vtable_priv_t): Remove the scratch pool.

* subversion/libsvn_delta/branch.c

(...all methods...): Use the passed-in scratch pool instead.

(svn_branch_txn_create,

svn_branch_state_create): Remove initialization of the scratch pool.

  1. … 1 more file 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: Refactoring of branch state and branch

transaction objects to allow implementing different subclasses with

different private data.

This separates the private data from the (conceptually public) vtable.

* subversion/include/private/svn_branch.h

(svn_branch_txn_vtable_t,

svn_branch_state_vtable_t): New.

(svn_branch_txn_t,

svn_branch_state_t): Add a vtable.

* subversion/libsvn_delta/branch_private.h

(svn_branch_txn_vtable_t,

svn_branch_state_vtable_t): Rename from '*_priv_t' and remove the private

data.

* subversion/libsvn_delta/branch.c

(svn_branch_txn_priv_t,

svn_branch_state_priv_t): Define here, containing just the private data.

(svn_branch_txn_new_eid,

svn_branch_txn_open_branch,

svn_branch_txn_branch,

svn_branch_txn_sequence_point,

branch_txn_create): Track the rename of 'priv' to 'vtable'.

(svn_branch_txn_create): Initialize the new 'priv' member.

(svn_branch_state_alter_one,

svn_branch_state_copy_tree,

svn_branch_state_delete_one,

svn_branch_state_purge,

branch_state_create): Track the rename of 'priv' to 'vtable'.

(svn_branch_state_create): Initialize the new 'priv' member.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Refactoring: make one public member private

in each of the 'branch txn' and 'branch state' objects, and move some

declarations to a private header.

* subversion/include/private/svn_branch.h

(svn_branch_txn_t,

svn_branch_state_t): Remove one public member.

* subversion/libsvn_delta/branch.c

(svn_vtable_priv_t,

branch_txn_v_*_t,

branch_state_v_*_t): Move to branch_private.h.

(svn_branch_txn_priv_t,

svn_branch_state_priv_t): Move to branch_private.h, and move a member

variable into this structure.

Adjust all callers/users.

* subversion/libsvn_delta/branch_private.h

New file.

  1. … 2 more files in changeset.