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

Changeset 1675643 is being indexed.

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.

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

* subversion/include/private/svn_branch.h

(svn_branch_revision_root_t): Tweak the doc strings.

* subversion/svnmover/svnmover.c

(branch_info): Correct the doc string.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Rename 'branch instance' to simply 'branch'

in most cases, and 'svn_branch_instance_t' to 'svn_branch_state_t'.

The 'instance' terminology was a relic from when groups of branches shared a

'sibling definition' -- which I deleted in r1674825.

* subversion/include/private/svn_branch.h

(svn_branch_revision_root_t): Rename 'branch_instances' to 'branches'.

(svn_branch_revision_root_get_branches): Was

'svn_branch_get_all_branch_instances'.

(svn_branch_revision_root_get_branch_by_id): Was

'svn_branch_get_branch_instance_by_id'.

(svn_branch_state_t): Was 'svn_branch_instance_t'.

(svn_branch_state_create): Was 'svn_branch_instance_create'.

(svn_branch_add_new_branch): Was 'svn_branch_add_new_branch_instance'.

(svn_branch_delete_branch_r): Was 'svn_branch_delete_branch_instance_r'.

(svn_branch_get_id): Was 'svn_branch_instance_get_id'.

* subversion/libsvn_delta/branch.c

(assert_branch_state_invariants): Was 'assert_branch_instance_invariants'.

(svn_branch_revision_root_delete_branch): Was

'svn_branch_revision_root_delete_branch_instance'.

(svn_branch_state_parse): Was 'svn_branch_instance_parse'.

(svn_branch_state_serialize): Was 'svn_branch_instance_serialize'.

Track the other renames.

* subversion/svnmover/svnmover.c

(list_all_branches): Was 'list_all_branch_instances'.

Track the other renames.

* subversion/include/private/svn_editor3e.h,

subversion/libsvn_delta/compat3e.c,

subversion/libsvn_delta/editor3e.c

Track all the renames.

  1. … 5 more files in changeset.
On the 'move-tracking-2' branch: Make a function public.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_get_branch_instance_by_id): New, moved and renamed...

* subversion/svnmover/svnmover.c

(svn_branch_revision_root_find_branch_by_id): ... from here.

(svn_branch_find_predecessor_el_rev): Update the (only) call to it.

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

* subversion/include/private/svn_branch.h

(svn_branch_get_subtree): Document the lifetime.

On the 'move-tracking-2' branch: Combine two functions into one.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_branch_subtree_r): Delete; move its body...

(svn_branch_branch): ... into here.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Remove 'branch family' and 'branch sibling

definition' data types.

The 'family' concept has been redundant since r1673476. The 'sibling'

concept, that is the concept of groups of branches having something in

common, is not currently used, and so was just confusing.

No behavioural change.

* subversion/include/private/svn_branch.h

(svn_branch_family_t,

svn_branch_sibling_t): Delete.

(svn_branch_revision_root_t): Move the first and next EID fields to here.

(svn_branch_instance_t): Move the root EID field to here.

Elsewhere: adjust accordingly.

* subversion/libsvn_delta/branch.c

Adjust everything accordingly.

* subversion/libsvn_delta/compat3e.c

Adjust everything accordingly.

* subversion/libsvn_delta/editor3e.c

Adjust everything accordingly.

* subversion/svnmover/svnmover.c

Adjust everything accordingly.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Remove 'branch family' and 'branch sibling

definition' data types.

The 'family' concept has been redundant since r1673476. The 'sibling'

concept, that is the concept of groups of branches having something in

common, is not currently used, and so was just confusing.

No behavioural change.

* subversion/include/private/svn_branch.h

(svn_branch_family_t,

svn_branch_sibling_t): Delete.

(svn_branch_revision_root_t): Move the first and next EID fields to here.

(svn_branch_instance_t): Move the root EID field to here.

Elsewhere: adjust accordingly.

* subversion/libsvn_delta/branch.c

Adjust everything accordingly.

* subversion/libsvn_delta/compat3e.c

Adjust everything accordingly.

* subversion/libsvn_delta/editor3e.c

Adjust everything accordingly.

* subversion/svnmover/svnmover.c

Adjust everything accordingly.

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

Move the definition of the initial r0 metadata out of 'ra_loader.c' and into

the branching subsystem, alongside the code for parsing and serializing that

metadata.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_get_default_r0_metadata): New.

* subversion/libsvn_ra/ra_loader.c

(default_repos_info): Delete; move into 'svn_branch_get_default_r0_metadata'.

(svn_branch_revision_fetch_info): Call 'svn_branch_get_default_r0_metadata'.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: In the metadata, note whether each element

is a subbranch root element, so that on reading it we can correctly set the

element's 'content' field to null.

Previously, everything was working well enough even though such elements had

their content set to non-null, but that is not sustainable.

* subversion/include/private/svn_branch.h

(svn_branch_el_rev_content_t): Update the comment.

(svn_branch_subtree_create): New.

* subversion/libsvn_delta/branch.c

(svn_branch_subtree_create,

svn_branch_subtree_get_path_by_eid): New.

(parse_element_line,

svn_branch_instance_parse,

svn_branch_instance_serialize): Add a 'kind' field to the metadata.

* subversion/libsvn_delta/compat3e.c

(editor3_alter): Allow altering an element whose previous content is null.

* subversion/libsvn_delta/element.c

(svn_element_content_equal): Allow comparing null element content.

* subversion/libsvn_ra/ra_loader.c

(default_repos_info): Add a 'kind' field to the initial metadata.

* subversion/svnmover/svnmover.c

(element_merge): Don't allow a 'double add' to apply to subbranches, as we

don't know whether they are identical (and don't want to check).

  1. … 5 more files in changeset.
On the 'move-tracking-2' branch: Stop using different branch families. All

branches are now members of the same family.

* subversion/include/private/svn_branch.h

(svn_branch_repos_t,

svn_branch_family_t,

svn_branch_family_create

svn_branch_revision_root_parse,

svn_branch_revision_root_serialize): Remove FID and family-nesting facilities.

(svn_branch_family_add_new_subfamily): Delete.

(svn_branch_sibling_t,

svn_branch_instance_t,

svn_branch_subtree_t,

svn_branch_copy_subtree_r,

svn_branch_branch_into): Adjust comments.

* subversion/libsvn_delta/branch.c

Adjust everything.

* subversion/libsvn_delta/compat3e.c

(same_family_and_element): Adjust.

* subversion/libsvn_delta/editor3e.c

(BRANCHES_IN_SAME_FAMILY): Delete.

(svn_branch_subtree_differences): Adjust.

* subversion/libsvn_ra/ra_loader.c

(default_repos_info): Adjust.

(svn_branch_revision_fetch_info,

svn_branch_repos_fetch_info,

svn_branch_get_mutable_state,

store_repos_info): Remove FID and family-nesting facilities.

* subversion/svnmover/svnmover.c

Adjust everything.

* subversion/tests/cmdline/svnmover_tests.py

(reported_br_diff,

reported_br_del,

reported_br_add): Remove 'family' parameter.

Adjust tests and commentary accordingly.

  1. … 6 more files in changeset.
On the 'move-tracking-2' branch: Implement an 'svnmover branch-into' command

and use it to make a test work again.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_branch_into): New function.

* subversion/svnmover/svnmover.c

(action_code_t,

action_defn): Add a 'branch-into' command.

(execute): Implement it.

* subversion/tests/cmdline/svnmover_tests.py

(restructure_repo_projects_ttb_to_ttb_projects): Use 'branch-into' to do

the rearrangement. Remove 'XFail' marker.

  1. … 3 more files in changeset.
On the 'move-tracking-2' branch: Delete the 'branchify' operation.

I invented the 'branchify' operation as a means to enable sub-branching, at

a time when my model required that every branch (in a family) had to be

rooted at the same element. That is no longer required, and the 'branchify'

operation is obsolete. (And it was not a fundamental operation; it was

implemented as a compound command comprising delete, branch, and replace.)

* subversion/include/private/svn_branch.h

(svn_branch_branchify): Delete.

* subversion/include/private/svn_editor3e.h,

subversion/libsvn_delta/editor3e.c

(svn_editor3_add): Allow adding a subbranch-root element.

* subversion/libsvn_delta/compat3e.c

(editor3_add): Allow adding a subbranch-root element.

(svn_delta__ev3_from_delta_for_commit2): Adjust a reference in a comment.

* subversion/libsvn_delta/branch.c

(get_family,

branch_branchify,

svn_branch_branchify): Delete.

* subversion/svnmover/svnmover.c

(action_code_t,

action_defn): Remove the 'branchify' action.

(mk_branch): New function.

(execute): Use it instead of using 'branchify' to implement 'mkbranch'.

Remove the 'branchify' implementation.

  1. … 5 more files in changeset.
On the 'move-tracking-2' branch: Make a function slightly easier to use.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_map_add_subtree): Allow calling with TO_EID=-1 to generate a

new EID for the subtree root.

(svn_branch_copy_subtree_r): Simplify by using that feature.

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

* subversion/include/private/svn_branch.h

Don't include "svn_editor.h".

On the 'move-tracking-2' branch: More factoring out selection of a subtree.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_map_get_subtree): New.

(svn_branch_instantiate_subtree): Was 'svn_branch_map_branch_children'.

Take the subtree to be instantiated as a parameter instead of copying it

directly from a given branch.

(svn_branch_map_purge_orphans): Factor out the core as

'map_purge_orphans'.

(copy_content_from): Delete.

(svn_branch_branch_subtree_r2): Adjust to use svn_branch_instantiate_subtree.

(svn_branch_branchify,

svn_branch_copy_subtree_r): Adjust to use svn_branch_map_get_subtree.

  1. … 1 more file in changeset.
On the 'move-tracking-2' branch: Start to factor out selection of a subtree.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_subtree_t): New.

(svn_branch_map_add_subtree): Was 'svn_branch_map_copy_children'.

Take the subtree to be added as a parameter instead of copying it

directly from a given branch.

(branch_branchify,

svn_branch_branchify,

svn_branch_copy_subtree_r): Adjust to use it.

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

* subversion/include/private/svn_branch.h

(svn_branch_branchify): Rewrite the doc string.

On the 'move-tracking-2' branch: Simplify branch family nesting. The model

does not need to support multiple branch families at the same nesting level,

so don't.

In fact the usage is more flexible this way. If the branches of separate

projects are in the same family (even if they do not share any elements)

then the repository layout can be rearranged from a /project/branch nesting

to a /branch/project nesting without breaking any branch history. Writing

branch names in upper case:

{/proj1/TRUNK/...,/proj2/TRUNK/...}

^ ^

| |

v v

{/TRUNK/proj1/...,/TRUNK/proj2/...}

On the other hand, separating branches into families can be convenient for

organizational purposes. However, for those purposes, support in the model

is unnecessary. A grouping feature can be layered on top of the base model.

* subversion/include/private/svn_branch.h

(svn_branch_family_t): Replace the nested 'sub_families' with a single

'subfamily'. Remove an obsolete comment.

(svn_branch_family_get_children): Delete.

* subversion/libsvn_delta/branch.c

(svn_branch_family_get_children,

family_is_child): Delete.

(assert_branch_family_invariants,

svn_branch_family_create,

svn_branch_get_subbranches,

svn_branch_family_parse,

svn_branch_family_serialize): Update.

(get_family): New.

(branch_branchify): Update.

* subversion/svnmover/svnmover.c

(family_list_branch_instances): Update.

  1. … 2 more files in changeset.
On the 'move-tracking-2' branch: Rename 'BID' (branch id) to 'BSID' (branch

sibling id) for clarity.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c,

subversion/libsvn_delta/compat3e.c,

subversion/libsvn_delta/editor3e.c,

subversion/libsvn_ra/ra_loader.c,

subversion/svnmover/svnmover.c:

Rename everywhere.

  1. … 5 more files in changeset.
On the 'move-tracking-2' branch: Print full branch ids when referring to

branches in the UI.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_branch,

svn_branch_branchify): Add an output parameter to return the new branch.

(svn_branch_instance_get_id): Remove a debug print.

* subversion/svnmover/svnmover.c

(BRANCH_IS_SAME_BRANCH): New macro, copied from branch.c.

(branch_str,

subbranch_str): New functions.

(diff_item_t): Add a field to hold a subbranch-root string.

(family_list_branch_instances,

branch_merge_subtree_r,

svn_branch_diff_e,

svn_branch_diff,

svn_branch_diff_r,

execute): Print full branch ids where appropriate.

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

* subversion/include/private/svn_editor3.h,

subversion/libsvn_delta/editor3.c

(svn_branch_branch,

svn_branch_branchify): Move from here...

* subversion/libsvn_delta/compat3b.c,

subversion/libsvn_delta/branch.c

(svn_branch_branch,

svn_branch_branchify): ... to here and remove the unused 'editor'

parameter.

* subversion/svnmover/svnmover.c

(execute): Update callers.

  1. … 4 more files in changeset.
On the 'move-tracking-2' branch: Some bulk renaming and physical refactoring

(moving source code into different files).

* subversion/libsvn_delta/branch.c

Renamed from 'branching.c'.

* subversion/include/private/svn_editor3.h,

subversion/libsvn_delta/editor3.c

Split out some content...

* subversion/include/private/svn_branch.h,

subversion/include/private/svn_element.h,

subversion/libsvn_delta/element.c

... into these new files.

Rename:

svn_editor3_peg_path_* -> svn_pathrev_*

svn_editor3_eid_t -> svn_branch_eid_t

svn_editor3_node_content_* -> svn_element_content_*

  1. … 9 more files in changeset.