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

Changeset 1688243 is being indexed.

On the 'move-tracking-2' branch: Tweak a doc string.

* subversion/include/private/svn_branch.h

(svn_branch_get_id): Document the id format. Move to a better position in

the file.

On the 'move-tracking-2' branch: Start implementing top-level branching.

Change the element data structures to support multiple top-level branches.

Everything works as before, using only top-level branch number 0.

This implementation assumes that the WC is within a single existing top

branch, and that the editor drive is within a single existing top branch.

It does not yet support creating or deleting a top-level branch.

It does not yet map top-level branches to different path-spaces in an old

repository, so it does not yet have anywhere to store the payloads.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_repos_get_root_branch,

svn_branch_repos_find_el_rev_by_path_rev): Select a particular top branch.

(svn_branch_revision_root_t): Store an array of root branches instead of a

single one.

(svn_branch_revision_root_create): Remove the root branch parameter:

instead, create the object with no branches.

(svn_branch_revision_root_get_root_branch): New.

(svn_branch_state_t): Update docs: for a top-level branch, the 'outer-eid'

field now stores the top-level branch number.

* subversion/include/private/svn_editor3e.h

(svn_editor3_in_memory): Select a particular top branch.

* subversion/libsvn_delta/compat3e.c

(ev3_from_delta_baton_t): Remember which top branch we're editing.

(drive_changes_branch,

editor3_sequence_point): When accessing the root branch, access the right

one.

(svn_editor3_in_memory): Select a particular top branch.

* subversion/svnmover/svnmover.c

(wc_checkout): Initialize the editor for the requested top branch; error

out if that branch doesn't exist.

(wc_create): Remember which top branch the WC is editing.

(replay): Take branches instead of rev-roots as inputs.

(commit_callback_baton_t): Remember which top branch we are editing.

(wc_commit): Pass the appropriate top level branches to replay().

(find_el_rev_by_rrpath_rev): Look up within the WC's designated top

branch.

(do_update): Operate within the designated top branch.

(display_diff_of_commit,

do_revert): Update calls.

(usage,

sub_main): Add a '-B'/'--branch-id' option to select the top branch.

* subversion/svnmover/svnmover.h

(svnmover_wc_t): Remember which top branch the WC is editing.

  1. … 5 more files in changeset.
On the 'move-tracking-2' branch: Remove the 'branch-into' function from the

public API as it is a derived, not fundamental, branching operation.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_branch_into): Move from here...

* subversion/svnmover/svnmover.c

(do_branch_into): ... to here. Rename. Improve and correct the doc string.

(execute): Track the rename.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Tweak a doc string.

* subversion/include/private/svn_branch.h

(svn_branch_subtree_create): Tweak doc string.

On the 'move-tracking-2' branch: Add notes about operating on transactions

and flat tree states.

* BRANCH-README,

subversion/include/private/svn_branch.h

Add notes about operating on transactions and flat trees, and what needs

to be done to improve the situation.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Provide more simple APIs for clarity,

instead of accessing structure fields directly.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_repos_t): Correct a comment.

(svn_branch_repos_get_revision,

svn_branch_repos_get_root_branch,

svn_branch_revision_root_get_base): New.

(svn_branch_repos_find_el_rev_by_id,

svn_branch_repos_find_el_rev_by_path_rev): Use them.

* subversion/svnmover/svnmover.c

(wc_commit,

do_update,

do_revert): Use them.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Rename an API for clarity.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_get_immediate_subbranches): Rename from

'svn_branch_get_all_subbranches'.

* subversion/libsvn_delta/compat3e.c

(convert_branch_to_paths_r): Track the rename.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Tweak a doc string.

* subversion/include/private/svn_branch.h

(svn_branch_map_add_subtree): Clarify the use of new EIDs.

On the 'move-tracking-2' branch: A small refactoring.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_add_new_branch): If the given root EID is -1, allocate a new EID.

* subversion/svnmover/svnmover.c

(mk_branch): Don't allocate a new EID here; let

svn_branch_add_new_branch() do it.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Track the base revision number for a

branching transaction. We do not yet make use of this.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_revision_root_t,

svn_branch_revision_root_create): Add a base revision number field.

(svn_branch_revision_root_parse): Initialize the base revision number.

* subversion/libsvn_delta/compat3e.c

(drive_changes_branch): Use the stored base revision number instead of

assuming it is the head revision.

* subversion/libsvn_ra/ra_loader.c

(svn_branch_get_mutable_state): Set both the revision and the base revision

numbers appropriately for a transaction. (Previously even the existing

revision number field was not being changed to indicate a transaction.)

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Eliminate some direct access to branch

object implementation details.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_repos_find_el_rev_by_id): New.

* subversion/libsvn_delta/compat3e.c

(svn_editor3_get_all_branches_in_rev): Use an accessor function instead of

directly reading rev_root->branches.

* subversion/svnmover/svnmover.c

(svn_branch_find_predecessor_el_rev): Use the new method

'svn_branch_repos_find_el_rev_by_id'.

(svn_branch_log): Adjust the call to 'svn_branch_find_predecessor_el_rev'.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Eliminate some direct access to branch

object implementation details.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_get_elements): New.

* subversion/svnmover/svnmover.c

(sort_compare_items_by_eid): New.

(list_branch_elements_by_eid,

branch_merge_subtree_r): Iterate over the elements in the branch

rather than over all known element ids.

(flat_branch_diff_r,

svn_branch_diff_r): Print element ids using a hard-coded minimum width of

3 rather than based on the maximum of all known element ids.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Delete a branch_state_t API function that

assumed branch state would have access by paths.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_get_subbranches): Delete.

(svn_branch_get_subtree): Gather subbranches a different way, using

svn_branch_get_all_subbranches() instead of svn_branch_get_subbranches().

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Tweak function and variable names for

consistency: say 'subbranch' instead of 'sub_branch'.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_get_all_subbranches): Was 'svn_branch_get_all_sub_branches'.

(svn_branch_purge_r,

svn_branch_delete_branch_r): Track the rename.

(svn_branch_get_subbranches,

svn_branch_get_subbranch_at_eid): Rename a local variable.

(svn_branch_find_nested_branch_element_by_rrpath): Track the rename.

Rename local variables.

* subversion/libsvn_delta/compat3e.c

(convert_branch_to_paths_r): Track the rename.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Add a simple accessor function.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_subtree_get_subbranch_at_eid): New.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Correct a doc string.

* subversion/include/private/svn_branch.h

(svn_branch_subtree_t): Correct the doc string.

On the 'move-tracking-2' branch: Expose a function publicly.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_subtree_get_path_by_eid): Make public.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Add a comment about element ids being

arbitrary.

* subversion/include/private/svn_branch.h,

(svn_branch_eid_t): Add a comment.

On the 'move-tracking-2' branch: Add a comment about branch ids being

arbitrary.

* subversion/include/private/svn_branch.h,

(svn_branch_revision_root_get_branch_by_id,

svn_branch_get_id): Add a comment and a cross-reference.

On the 'move-tracking-2' branch: Introduce the term 'payload' for the

props/text/symlink content of an element, as the term 'content' was not

specific enough.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_el_rev_content_t): Rename 'content' field to 'payload'.

(svn_branch_el_rev_content_create,

svn_branch_update_element,

): Rename the 'node_content' parameter to 'payload'.

Track the renames.

* subversion/include/private/svn_element.h,

subversion/libsvn_delta/element.c

(svn_element_payload_t): Renamed from 'svn_element_content_t'.

(svn_element_payload_dup,

svn_element_payload_equal,

svn_element_payload_create_ref,

svn_element_payload_create_dir,

svn_element_payload_create_file,

svn_element_payload_create_symlink):

Renamed from 'svn_element_content_*'.

* subversion/include/private/svn_editor3e.h,

subversion/libsvn_delta/editor3e.c,

(svn_editor3_add,

svn_editor3_instantiate,

svn_editor3_copy_one,

svn_editor3_alter,

svn_editor3_cb_add_t,

svn_editor3_cb_instantiate_t,

svn_editor3_cb_copy_one_t,

svn_editor3_cb_alter_t,

wrap_add,

wrap_instantiate,

wrap_copy_one,

wrap_alter):

Rename the 'new_content' parameter to 'new_payload'.

(VALID_PAYLOAD): Renamed from 'VALID_CONTENT'.

Track the renames.

* subversion/include/private/svn_editor3e.h,

subversion/libsvn_delta/compat3e.c

(svn_editor3_payload_resolve): Renamed from 'svn_editor3_content_resolve'.

Rename the 'content_p' parameter to 'payload_p'.

(payload_fetch): Renamed from 'content_fetch'.

Track the renames.

* subversion/svnmover/svnmover.c

(payload_merge): Renamed from 'content_merge'.

Track the renames.

* subversion/include/private/svn_editor3p.h,

subversion/libsvn_delta/editor3p.c

(svn_editor3p_put,

svn_editor3p_cb_put_t,

wrap_put): Track the renames.

* subversion/libsvn_delta/compat3p.c

(process_actions,

editor3_put): Track the renames.

  1. … 10 more files in changeset.
On the 'move-tracking-2' branch: Rename a function.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_copy_subtree): Was 'svn_branch_copy_subtree_r'.

Improve the doc string.

Track the rename.

* subversion/libsvn_delta/compat3e.c

(editor3_copy_tree): Track the rename.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Rename a function and improve doc strings.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_instantiate_subtree): Improve the doc string.

(svn_branch_branch_subtree): Was 'svn_branch_branch_subtree_r2'.

Improve the doc string.

Track the rename.

* subversion/svnmover/svnmover.c

(merge_subbranch): Track the rename.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Remove an obsolete comment.

* subversion/include/private/svn_branch.h

(svn_branch_branch_subtree_r2): Remove an obsolete comment.

On the 'move-tracking-2' branch: Remove an unnecessary public function.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_map_purge_orphans): Delete.

(svn_branch_purge_r,

svn_branch_state_serialize): Call map_purge_orphans() directly.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Fix indentation, following r1676469.

* subversion/include/private/svn_branch.h

(svn_branch_get_element,

svn_branch_delete_element,

svn_branch_update_element,

svn_branch_update_subbranch_root_element): Fix indentation.

On the 'move-tracking-2' branch: Rename 'svn_branch_map_{get,update,...}' to

'svn_branch_{get,update,...}_element'.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_get_element): Was 'svn_branch_map_get'.

(svn_branch_delete_element): Was 'svn_branch_map_delete'.

(svn_branch_update_element): Was 'svn_branch_map_update'.

(svn_branch_update_subbranch_root_element): Was

'svn_branch_map_update_as_subbranch_root'.

Track the renames.

* subversion/libsvn_delta/compat3e.c

Track the renames.

* subversion/svnmover/svnmover.c

Track the renames.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Correct some comments: an element with null

node-content is a subbranch-root element, not unknown.

* subversion/include/private/svn_branch.h

(svn_branch_map_get): Correct a comment.

* subversion/libsvn_delta/branch.c

(branch_map_set): Correct a comment.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Rename functions and variables from 'node'

to 'element'.

* subversion/include/private/svn_branch.h

(svn_branch_map_get,

svn_branch_map_update_as_subbranch_root): Update comments.

* subversion/libsvn_delta/branch.c

(branch_validate_element): Was branch_map_node_validate. Update comments

following r1676460.

(svn_branch_map_get,

branch_map_set,

svn_branch_map_update_as_subbranch_root): Track the rename. Update

comments.

(svn_branch_get_subtree,

map_purge_orphans,

svn_branch_map_add_subtree,

svn_branch_instantiate_subtree): Rename variables of type

'svn_branch_el_rev_content_t' from 'node' to 'element'.

* subversion/libsvn_delta/compat3e.c

Update comments.

* subversion/libsvn_delta/editor3e.c

Update a comment.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Document 'EID' better.

* subversion/include/private/svn_branch.h

(svn_branch_eid_t): Improve comments.

On the 'move-tracking-2' branch: Note that svn_branch_subtree_t

should be used in implementing svn_branch_state_t.

* subversion/include/private/svn_branch.h

(svn_branch_state_t,

svn_branch_subtree_t): Add comments.