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

Changeset 1764407 is being indexed.


Vote for and approve r1763934 and r1764034.

Corrected spelling mistakes in comments.

* subversion/include/private/svn_utf_private.h

(svn_utf__glob): as above

* subversion/include/svn_fs.h

(svn_fs_refresh_revision_props): as above

* subversion/libsvn_fs_fs/fs.h

(): as above

* subversion/libsvn_fs_fs/pack.c

(tweak_path_for_ordering): as above

* subversion/libsvn_fs_fs/temp_serializer.h

(): as above

* subversion/libsvn_fs_x/pack.c

(): as above

* subversion/libsvn_subr/prefix_string.c

(): as above

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_wclock_find_root): as above

* subversion/svn/conflict-callbacks.c

(find_option_by_id): as above

* tools/dev/fsfs-access-map.c

(): as above

Obvious fix.

On the authzperf branch:

Make handling of "**" (any-var) match user's expectations. See test cases.

This fixes the calculation of recursive access rights. The pre-calculated

information on the tree nodes must only cover the bottom-up view, i.e. what

range of access rights has been defined anywhere in the sub-tree. Top-down

application of inheritance must be restricted to the lookup - which already

fully handles it. Hence, we only need finalize_tree instead of

finalize_up_tree and finalize_down_tree.

The second change in here is that trailing any-var patterns will actually

eclipse (hide / replace) any previous rule for the respective sub-tree.

That is relevant for recursive right checks which don't operate on the

repository node tree but only on the set of *potentially* applicable

rules for that sub-tree. This implements the only easy-to-handle special

case of a pattern replacing a set of other pattern rules.

* subversion/libsvn_repos/authz.c

(limited_rights_t): Commentary reflects that these bottom-up only now.



trim_tree): New functions implementing the any-var eclipses older rule



finalize_up_tree): Rename to ...


finalize_tree): ... this. No longer take the parent rights into account.

(finalize_subnode_hash): New utility function factored out from



finalize_up_tree): Remove.

(create_user_authz): Update caller. Invoke the new trim function, too.

* subversion/tests/libsvn_repos/repos-test.c


test_authz_pattern_tests): New test cases.

(test_funcs): Register new tests.

Remove resolve-incoming-add branch. Merged to trunk in r1764285.

Merge the resolve-incoming-add branch to trunk.

On the 'resolve-incoming-add' branch: Remove unnecessary code.

* subversion/libsvn_client/conflicts.c

(diff_dir_changed, diff_dir_deleted, diff_file_changed,

diff_file_deleted): Remove. Since we're diffing an empty tree against

an added tree, these should never be invoked.

(merge_newly_added_dir): Only set the diff processor callbacks we need.

The diff processor already provides stubs for the rest.

Correct typos in comments.

* subversion/libsvn_wc/entries.c (write_entry): correct typo

* subversion/libsvn_client/conflicts.c (): correct typo

Obvious fix.

On the 'resolve-incoming-add' branch: Make a FAILing test PASS again.

* subversion/tests/libsvn_client/conflicts-test.c

(test_merge_incoming_added_dir_merge2): Account for the nested

'add vs add' tree conflict on the new file, and for the change

in property conflict behaviour (to be investigated later).

Following up on r1764273, fix indentation in the check_move_ancestry()


* subversion/libsvn_client/conflicts.c

(check_move_ancestry): As above.

On the 'resolve-incoming-add' branch: Make an XFAIL test PASS.

* subversion/libsvn_client/conflicts.c

(diff_dir_changed, diff_dir_deleted, diff_file_changed,

diff_file_deleted): Remove SVN_DBG calls.

On the 'resolve-incoming-add' branch: Make an XFAIL test PASS.

* subversion/tests/libsvn_client/conflicts-test.c

(test_merge_incoming_added_dir_merge3): Fix this test to account for the

nested 'add vs add' conflict on the file which was added on both the

trunk and the branch. And stop testing for subtree-mergeinfo, since

it's not clear yet whether and how this should be handled by the resolver.

(test_func): Mark the above test as PASS.

Fix tracing of the chained incoming moves in the tree conflict resolver.

We only need to take the last-changed revision of the deleted node into

account while mapping a delete+copy pair to a move, instead of also doing

this when chaining moves.

* subversion/libsvn_client/conflicts.c

(check_move_ancestry): Accept new argument that makes the last-changed

revision check conditional.

(find_moves_in_revision): Update the calling sites of check_move_ancestry().

Check the last-changed revision when resolving moves within a single

revision, and don't do that when gluing moves that happened in different


* subversion/tests/libsvn_client/conflicts-test.c

(test_funcs): The test_merge_incoming_chained_move_local_edit() test now


On the resolve-incoming-add branch:

* subversion/libsvn_client/conflicts-test.c

(test_merge_incoming_added_dir_merge2): Sync docstring with reality.

* subversion/libsvn_client/conflicts.c

(check_move_ancestry): Explicitly initialize the output argument in

all cases, to make the code a bit clearer.

Lay some groundwork for fixing the chained incoming moves conflict

resolution by fixing a minor bug in the check_move_ancestry() function.

* subversion/libsvn_client/conflicts.c

(check_move_ancestry): If there is no location for the deleted node

@COPYFROM_REV, the deleted and the copied nodes are not related.

On the 'resolve-incoming-add' branch: Make an XFAIL test PASS.

* subversion/tests/libsvn_client/conflicts-test.c

(test_merge_incoming_added_dir_merge): Fix this test to account for the

nested 'add vs add' conflict on the file which was added on both the

trunk and the branch.

(test_func): Mark the above test as PASS.

On the resolve-incoming-add branch:

* subversion/libsvn_client/conflicts.c

(diff_file_added): Add a file to the working copy. Remove SVN_DBG calls.

On the resolve-incoming-add branch:

* subversion/libsvn_client/conflicts.c

(diff_dir_added): Remove SVN_DBG calls.

On the ra-git branch: Fix compilation of libsvn_ra_git.

* build/generator/

Add libssh2 as optional dependency.

* build.conf

(libssh2): Declare known library and dependency on openssl.

(libgit2): Depend on libssh2.

* subversion/libsvn_ra_git/fetch.c

(svn_ra_git__wrap_git_error): Remove unused function.

On the resolve-incoming-add branch: Merge with trunk.

On the 'resolve-incoming-add' branch:

When merging added directory trees, merge the properties at the root folder.

* subversion/libsvn_client/conflicts.c

(merge_added_dir_props): New helper function.

(diff_dir_added): Merge props on the root of the added tree.

On the ra-git branch: Fix compilation of libsvn_fs_git by fixing one

minor libsvn_fs change and a libgit2 error handling change.

* subversion/libsvn_fs_git/git-revroot.c

(root_vtable): Pass NULL as the new in 1.10 change iterator to fall

back to the default implementation.

* subversion/libsvn_fs_git/svn_git.c

(svn_git__wrap_git_error): Update for changed error handling in libgit2.

Add a test for "incoming move vs local edit" tree conflict resolution upon

merge, where the file has been moved twice, and also it was deleted and

recreated between these moves (like, mv a → b, commit, replace b, commit,

mv b → c, commit).

The test works, and we expect that the "(m) move 'a' to 'c' and merge"

option is not available, as the file was actually deleted at some point,

thus the second move is a part of the different line of history.

* subversion/tests/libsvn_client/conflicts-test.c

(test_merge_incoming_file_move_new_line_of_history): New test.

(test_funcs): Reference new test.

Fix minor bug in property conflict interactive resolver.

* subversion/svn/conflict-callbacks.c

(merge_prop_conflict): Check THEIR_PROPVAL for NULL instead of checking


Bring up to date with trunk, resolving a few minor text conflicts in build.conf
    • ?
  1. … 372 more files in changeset.
Add my notes from the first day of the Berlin 2016 hackathon.

* notes/meetings/berlin-16-minutes: New file.

    • ?
Add a failing test for "remote move vs local edit" tree conflict resolution

upon merge with a moved directory that also contains a moved file.

While we can currently resolve the conflict on the directory by moving it,

then the conflict resolver doesn't see the file move that occured within

the directory.

* subversion/tests/libsvn_client/conflicts-test.c

(test_merge_incoming_move_dir_with_moved_file): New failing test.

(test_funcs): Reference new test.

Convert the test_merge_incoming_move_dir() test into a failing one by

adding a check for the determined move destinations.

Currently, the conflict resolver offers two possible move destinations in

the case of an incoming moved directory.

* subversion/tests/libsvn_client/conflicts-test.c

(test_merge_incoming_move_dir): Add new check, the test fails now.

(test_funcs): Expect the test to fail.

On the 'resolve-incoming-add' branch:

* subversion/libsvn_client/conflicts.c

(diff_dir_added): Add a directory to the working copy.

On the resolve-incoming-add branch:

* subversion/libsvn_client/conflicts.c: Explicitly include svn_diff_tree.h.