Checkout Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix various typos detected by codespell

* tests/cmdline/externals_tests.py, tests/cmdline/lock_tests.py,

tests/cmdline/log_tests.py, tests/cmdline/merge_authz_tests.py,

tests/cmdline/merge_tests.py, tests/cmdline/move_tests.py,

tests/cmdline/svnadmin_tests.py, tests/cmdline/switch_tests.py,

tests/libsvn_client/conflicts-test.c, tests/libsvn_client/mtcc-test.c,

tests/libsvn_fs/fs-test.c, tests/libsvn_fs_x/fs-x-pack-test.c,

tests/svn_test_main.c:

(): Spelling fixes

  1. … 11 more files in changeset.
* everywhere: Run tools/dev/remove-trailing-whitespace.sh to remove

trailing whitespace before we branch 1.14.

  1. … 105 more files in changeset.
Various spelling fixes, no functional change

* contrib/client-side/svn-clean

(--exclude): s/exluded/excluded/

* subversion/include/svn_error_codes.h

(SVN_ERR_X509_CERT_VERIFY_FAILED): s/Certficate/Certificate/

* subversion/po/de.po,

subversion/po/ja.po,

subversion/po/ko.po,

subversion/po/pl.po,

subversion/po/sv.po:

(): s/Certficate/Certificate/; s/abandonded/abandoned/

* subversion/libsvn_repos/repos.c:

(): s/abandonded/abandoned/

* subversion/libsvn_repos/repos.c,

subversion/svnadmin/svnadmin.c,

subversion/tests/libsvn_client/client-test.c:

(): s/filesytem/filesystem/

  1. … 9 more files in changeset.
Add resolver support for moved-file vs moved-file upon update.

The resolver now supports move vs move tree conflicts for files after

an update operation.

Two new resolution operations are available:

(m) - override incoming move and merge incoming changes from 'alpha-moved'

to 'alpha-also-moved'

(M) - accept incoming move and merge local changes from 'alpha-also-moved'

to 'alpha-moved'

Where the file was originally called 'alpha', was renamed to 'alpha-moved'

in the repository, and renamed to 'alpha-also-moved' in the working copy.

Because the local move is broken during the update operation when the

delete-half of the move is updated, the resolver only has the copied half

move available in the working copy. To find the local move destination the

resolver queries the working copy database for nodes which are copies of

the conflict victim's repository path. This can of course lead to ambiguous

results in case a node is first copied and then moved, in which case the

resolver offers the user a choice of local move targets in the usual way.

* subversion/include/private/svn_wc_private.h

(svn_wc__find_copies_of_repos_path): Declare.

* subversion/libsvn_client/conflicts.c

(conflict_tree_update_local_moved_away_details): New conflict details struct.

(resolve_both_moved_file_update_keep_local_move,

resolve_both_moved_file_update_keep_incoming_move): New resolution handlers.

(conflict_tree_get_details_update_local_moved_away): New details fetcher

which locates copied nodes corresponding to the local move.

(get_both_moved_file_paths): New helper function.

(conflict_tree_get_description_update_both_moved_file_merge,

conflict_tree_get_description_update_both_moved_file_move_merge): New

functions which describe incoming move vs local move conflicts flagged

during updates of files.

(configure_option_both_moved_file_merge): Hook up the new options.

(svn_client_conflict_option_get_moved_to_abspath_candidates2,

svn_client_conflict_option_set_moved_to_abspath2,

conflict_type_specific_setup): Support the newly added conflict options.

* subversion/libsvn_wc/node.c

(svn_wc__find_copies_of_repos_path): New.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_COPIES_OF_REPOS_RELPATH): New query which locates copies of a

particular repository relpath with a particular node kind in working copy.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_find_copies_of_repos_path): New wc_db API to execute above query.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_find_copies_of_repos_path): Declare.

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

(create_file_move_vs_file_move_update_conflict): New helper function.

(test_update_file_move_vs_file_move,

test_update_file_move_vs_file_move_accept_move, test_funcs): New tests

which exercise both of the newly added conflict resolution options.

  1. … 6 more files in changeset.
Add two resolver options for 'dir move vs dir move upon merge' conflicts.

These new options work similar to their existing counterparts for files.

* subversion/include/svn_client.h

(svn_client_conflict_option_both_moved_dir_merge,

svn_client_conflict_option_both_moved_dir_move_merge): Declare.

* subversion/libsvn_client/conflicts.c

(resolve_both_moved_dir_merge,

resolve_both_moved_dir_move_merge): New resolution option handlers.

(svn_client_conflict_tree_get_resolution_options,

configure_option_both_moved_dir_merge): Enable new options on applicable

tree conflicts.

(svn_client_conflict_option_get_moved_to_repos_relpath_candidates2,

svn_client_conflict_option_set_moved_to_repos_relpath2,

svn_client_conflict_option_get_moved_to_abspath_candidates2,

svn_client_conflict_option_set_moved_to_abspath2): Handle new options.

* subversion/svn/conflict-callbacks.c

(builtin_resolver_options): Assign resolver menu keys to the new options.

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

(test_merge_dir_move_vs_dir_move,

test_merge_dir_move_vs_dir_move_accept_move, test_funcs): Add new tests.

(create_dir_move_vs_dir_move_merge_conflict): New helper for above tests.

  1. … 3 more files in changeset.
Let repository-to-WC copies go through the WC editor.

For issue #4786 "Create a WC working-mods editor".

Similar to the patch committed in r1848892 and reverted in r1848897, except

that attempt failed on Windows because it created the copy target root

directory twice.

* subversion/include/private/svn_client_private.h

(svn_client__repos_to_wc_copy): Rename to

'svn_client__repos_to_wc_copy_internal'.

(svn_client__repos_to_wc_copy_by_editor): New.

* subversion/libsvn_client/conflicts.c

(merge_incoming_added_dir_replace): Update to use

'svn_client__repos_to_wc_copy_by_editor'.

* subversion/libsvn_client/copy.c

(copy_foreign_dir): Remove 'depth' parameter: not needed and was wrongly

implemented anyway.

(svn_client__repos_to_wc_copy_dir): Adjust caller.

(is_same_repository): New, moved from 'wc_editor.c'.

(svn_client__repos_to_wc_copy_by_editor): New.

(svn_client__repos_to_wc_copy,

repos_to_wc_copy_single): Determine same-repository here and here...

(repos_to_wc_copy_locked): ... instead of here.

* subversion/libsvn_client/wc_editor.c

(is_same_repository): Delete; moved to 'copy.c'.

(dir_add,

file_add): Don't determine same-repository here. Do set the 'created' flag.

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

(test_foreign_repos_copy): Update caller.

  1. … 4 more files in changeset.
Revert r1848892 as it fails on Windows.

  1. … 4 more files in changeset.
Let repository-to-WC copies go through the WC editor.

For issue #4786 "Create a WC working-mods editor".

* subversion/include/private/svn_client_private.h

(svn_client__repos_to_wc_copy): Rename to

'svn_client__repos_to_wc_copy_internal'.

(svn_client__repos_to_wc_copy_by_editor): New.

* subversion/libsvn_client/conflicts.c

(merge_incoming_added_dir_replace): Update to use

'svn_client__repos_to_wc_copy_by_editor'.

* subversion/libsvn_client/copy.c

(copy_foreign_dir): Remove 'depth' parameter: not needed and was wrongly

implemented anyway.

(svn_client__repos_to_wc_copy_dir): Adjust caller.

(is_same_repository): New, moved from 'wc_editor.c'.

(svn_client__repos_to_wc_copy_by_editor): New.

(svn_client__repos_to_wc_copy,

repos_to_wc_copy_single): Determine same-repository here and here...

(repos_to_wc_copy_locked): ... instead of here.

* subversion/libsvn_client/wc_editor.c

(is_same_repository): Delete; moved to 'copy.c'.

(dir_add,

file_add): Don't determine same-repository here. Do set the 'created' flag.

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

(test_foreign_repos_copy): Update caller.

  1. … 4 more files in changeset.
Add a bunch of missing build artifact svn:ignore items.
  1. … 7 more files in changeset.
Simplify the physical implementation of foreign-repo copy.

For issue #4786 "Create a WC working-mods editor".

* subversion/include/private/svn_client_private.h

(svn_client__copy_foreign): Remove.

* subversion/libsvn_client/copy.c

(copy_foreign_dir): New here, moved from copy_foreign.c.

(svn_client__repos_to_wc_copy_dir): Call copy_foreign_dir() directly

instead of through svn_client__foreign_copy().

(svn_client__repos_to_wc_copy): Allow a null 'timestamp_sleep' output ptr.

* subversion/libsvn_client/copy_foreign.c

Delete this file; move copy_foreign_dir() to copy.c.

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

(test_foreign_repos_copy): Update callers of svn_client__copy_foreign()

to use svn_client__repos_to_wc_copy() instead.

  1. … 3 more files in changeset.
Add two additional resolver tests for file move vs file move upon merge.

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

(create_file_move_vs_file_move_merge_conflict): Support editing the file

on the branch.

(test_merge_file_move_vs_file_move,

test_merge_file_move_vs_file_move_accept_move): Update callers.

(test_merge_file_edit_move_vs_file_move,

test_merge_file_edit_move_vs_file_move_accept_move): New tests.

These are like the other 2 but also edit the moved file on the branch.

(test_funcs): Add new tests.

Add two new resolver tests for file move vs file move upon merge.

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

(create_file_move_vs_file_move_merge_conflict,

test_merge_file_move_vs_file_move,

test_merge_file_move_vs_file_move_accept_move): New tests for resolver

options svn_client_conflict_option_both_moved_file_move_merge and

svn_client_conflict_option_both_moved_file_merge. These tests only

move files, but don't edit them.

(test_funcs): Add new tests.

Deduplicate the make-parents functionality in 'copy' code.

And the verification that WC target paths are suitable.

* subversion/include/private/svn_client_private.h,

subversion/libsvn_client/copy_foreign.c

(svn_client__copy_foreign): Remove all that functionality, as it was done

already by 'verify_dsts', and remove the 'make_parents' parameter.

* subversion/libsvn_client/copy.c

(svn_client__repos_to_wc_copy_dir): Update the call to ...copy_foreign.

(repos_to_wc_copy): Remove all that functionality; from now on it is going

to have been done already by 'verify_dsts'.

(repos_to_wc_copy_locked): Move the 'verify_dsts' call up from here...

(try_copy): ... to here and let it make missing parents.

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

(test_foreign_repos_copy): Update calls to ...copy_foreign.

  1. … 3 more files in changeset.
A small simplification of svn_client__copy_foreign.

Don't open a new RA session; let the caller provide one.

* subversion/include/private/svn_client_private.h,

subversion/libsvn_client/copy_foreign.c

(svn_client__copy_foreign): Take an RA session and a resolved location

instead of a URL and peg and operative revisions.

(copy_foreign_dir): Constify a parameter.

* subversion/libsvn_client/copy.c

(svn_client__repos_to_wc_copy_dir): Adjust the call.

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

(test_foreign_repos_copy): Open an RA session and adjust the calls.

  1. … 3 more files in changeset.
Follow-up to r1846851: Fix test expectations.

I missed a failing test which didn't expect to see an 'ignore deletion'

option, which is now made available due to a minor change in r1846851.

* subversion/iibsvn_client/conflicts-test.c

(test_merge_incoming_delete_vs_local_delete): Expect the 'ignore deletion'

option to show up. The new logic to toggle this option since r1846851

may need more consideration, but providing the option isn't harmful

so make this test expect it for now.

Simplify svn_client__copy_foreign().

Simplify by requiring the caller to hold a WC write lock. The only real

caller already did, and the test callers now do.

* subversion/include/private/svn_client_private.h

(svn_client__copy_foreign): Remove 'already_locked' parameter, and

document the requirement for a WC write lock.

(svn_client__repos_to_wc_copy_dir): Tweak similar comment in the same way.

* subversion/libsvn_client/copy.c

(repos_to_wc_copy_single): Don't pass that parameter.

* subversion/libsvn_client/copy_foreign.c

(svn_client__copy_foreign): Remove the ability to acquire and release a

WC write lock.

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

(test_foreign_repos_copy): Acquire and release a write lock here.

  1. … 3 more files in changeset.
Add resolver support for unversioned directories during update/switch.

The resolver now offers the 'merge directories' option when it encounters

a conflict for an incoming added directory vs an unversioned directory

after an update or switch.

* subversion/libsvn_client/conflicts.c

(resolve_update_incoming_added_dir_merge): Add support for unversioned

directories. Resolution is implemented as a meta-data only revert.

(configure_option_incoming_added_dir_merge): Enable this option for

added vs. unversioned directories during update/switch.

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

(create_unversioned_dir, resolve_added_dir_vs_unversioned_dir): New helpers.

(test_update_dir_add_vs_unversioned_dir,

test_switch_dir_add_vs_unversioned_dir, test_funcs): Add new tests.

  1. … 1 more file in changeset.
Add resolver support for 'added file vs unversioned file' with update/switch.

Make the conflict resolver handle conflicts recorded during update and switch

operations where a newly added file was obstructed by an unversioned file.

The resolver will now offer the 'incoming_added_file_text_merge' option

in this case, allowing users to merge unversioned files with incoming

newly added files.

Because 'merge' currently skips unversioned files and does not even record

a conflict for them, this change only affects 'update' and 'switch'.

Supporting unversioned file conflicts during merges can be revisited later.

Suggested by: Ace Olszowka

* subversion/libsvn_client/conflicts.c

(resolve_merge_incoming_added_file_text_update): Handle unversioned files

in addition to versioned files.

(configure_option_incoming_added_file_text_merge): Enable this option

for the case where the local file is unversioned.

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

(new_file_content): Declare.

(test_update_file_add_vs_unversiond_file,

test_switch_file_add_vs_unversiond_file, test_funcs): New tests.

  1. … 1 more file in changeset.
Fix wrong paths in comments in resolver tests.

Found by: jcorvel

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

(test_local_missing_abiguous_moves_dir): Fix up references to "A/mu" which

isn't used by this test; it uses "A/B" instead.

Fix an assertion failure in the conflict resolver.

* subversion/libsvn_client/conflicts.c

(conflict_tree_get_details_local_missing): We do not yet support the case

where the parent directory of the conflict victim is not part of the

repository-side tree which is checked out. Do not try to figure out

conflict details in this case yet.

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

(test_file_vs_dir_move_merge_assertion_failure): Remove code under #if 0

which I committed by accident in r1841753. Align test expectations with

the current behaviour of the conflict resolver.

(test_funcs): Mark test_file_vs_dir_move_merge_assertion_failure as PASS.

  1. … 1 more file in changeset.
Add an XFAIL resolver test which triggers an assertion failure.

This new test triggers an infamous assertion failure which has

already been reported several times:

svn_tests: E235000: In file 'subversion/libsvn_client/conflicts.c' \

line 2242: assertion failed (start_rev > end_rev)

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

(test_file_vs_dir_move_merge_assertion_failure, test_funcs): New XFAIL test.

Add resolver support for 'local missing' conflicts involving directories.

* subversion/libsvn_client/conflicts.c

(conflict_tree_get_details_local_missing): Don't hard-code svn_node_file.

Recommend an option for local missing merge targets in case there is

no ambiguity.

(resolve_sibling_move_dir_merge): Rename to...

(resolve_local_move_dir_merge): ... this, and support both local moves

(i.e. moves in the history of the merge target) and sibling moves (i.e.

moves in the history of the merge source).

(configure_option_local_move_file_merge): Rename to...

(configure_option_local_move_file_or_dir_merge): ... this, and add support

for directories.

(configure_option_sibling_move_merge,

configure_option_local_move_file_or_dir_merge): Track renamed functions.

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

(test_local_missing_abiguous_moves_dir): Fix an error in a path probed

by this test.

(test_funcs): Mark test_local_missing_abiguous_moves_dir as PASS.

  1. … 1 more file in changeset.
Add a new XFAIL conflict resolver test.

This is a basic test for 'local missing' conflicts with directories.

It might need to be tweaked further once the resolver starts supporting

this use case.

* subversion/libsvn_client/conflicts-test.c

(test_local_missing_abiguous_moves_dir, test_funcs): New test.

Implement support for ambiguous moves for 'local missing' conflicts.

* subversion/libsvn_client/conflicts.c

(conflict_tree_local_missing_details): Replace the single 'moved_to_abspath'

with appropriate data structures for supporting ambiguous moves: A map

of repository-side move targets and corresponding working copy paths.

The new data structures are similar to those used for 'incoming delete'

style conflicts.

(follow_move_chains): Move upwards in the file so it can be used earlier.

(conflict_tree_get_details_local_missing): Initialize the new map of

repository-side move targets. Again, this is similar to what the

corresponding 'get details' function for 'incoming delete' conflicts does.

(resolve_local_move_file_merge): Replace use of 'merge_target_abspath' with

use of the new move target map.

(configure_option_local_move_file_merge): Stop initializing move information

in conflict details here. This is now done earlier, when the details are

actually fetched from the repository. Doing this here is the wrong place

for the task, since we would clobber move target selections the user may

have already made. And again, the 'incoming delete' case works similar to

this new implementation for 'local missing'.

(get_repos_relpath_candidates): New helper function factored out from...

(svn_client_conflict_option_get_moved_to_repos_relpath_candidates): ...here.

Support selection of repository move targets with the new 'local missing'

details data structures.

(svn_client_conflict_option_set_moved_to_repos_relpath: Add support for

'local missing' conflicts to this function.

(set_wc_move_target): New helper function, factored out from...

(svn_client_conflict_option_get_moved_to_abspath_candidates): ...here.

Support the new move data structures used for 'local missing' conflicts.

* subversion/svn/conflict-callbacks.c

(build_tree_conflict_options): Obtain the list of working copy move targets

for 'local missing' options as well as 'incoming delete' style options.

(handle_tree_conflict): Allow choosing ambiguous move targets for

'local missing' style options.

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

(test_local_missing_abiguous_moves, test_funcs): New test.

  1. … 2 more files in changeset.
* subversion/tests/libsvn_client/conflicts-test.c

(test_cherry_pick_post_move_edit): Remove unneeded C++ comment.

Fix expected testresult of conflicts test that hits eol-style

differences on Windows.

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

(test_cherry_pick_post_move_edit): Use strict "\n" in quite a few

places to unbreak test.

Extend an existing conflict resolver test.

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

(test_merge_incoming_edit_file_moved_away): Verify the result of

svn_client_conflict_option_get_moved_to_abspath_candidates().

Introduce separate conflict option IDs for sibling move cases.

New option IDs had been avoided to make backporting to 1.10 easier.

Since the outstanding backport proposal was retracted in r1839283

it is time to use proper designations to make things less confusing.

* subversion/include/svn_client.h

(svn_client_conflict_option_sibling_move_file_text_merge,

svn_client_conflict_option_sibling_move_dir_merge): Declare.

* subversion/libsvn_client/conflicts.c

(conflict_tree_get_details_local_missing,

configure_option_sibling_move_merge): Use new options for

sibling move cases instead of overloading the 'local move' IDs.

A 'local move' is a different case.

(init_wc_move_targets): Add sibling move options.

(resolve_local_move_file_merge): Update docstring.

(svn_client_conflict_option_get_moved_to_abspath_candidates,

svn_client_conflict_option_set_moved_to_abspath): Add sibling move options.

* subversion/svn/conflict-callbacks.c

(builtin_resolver_options): Assign menu key "m" to sibling move options.

(build_tree_conflict_options, handle_tree_conflict); Support sibling

move options.

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

(test_cherry_pick_post_move_edit, test_cherry_pick_post_move_edit_dir):

Update test expectations.

  1. … 3 more files in changeset.
For issue #4694, handle cherry-picking across moved directories.

Also, refactor conflict option configuration a bit to clearly

separate local-move options from sibling-move options.

The names of options relating to sibling-moves are still not

ideal but that can be fixed later.

* subversion/libsvn_client/conflicts.c

(conflict_tree_get_details_local_missing): Recommend the

svn_client_conflict_option_local_move_dir_merge option.

(init_wc_move_targets): Handle the

svn_client_conflict_option_local_move_dir_merge option.

(resolve_sibling_move_dir_merge): Implement resolution of

(configure_option_local_move_file_merge): Move sibling-move

releted options out of here.

(configure_option_sibling_move_merge): New helper function

which configures resolution options for sibling move cases,

for both files and directories.

(svn_client_conflict_option_get_moved_to_abspath_candidates):

Support svn_client_conflict_option_local_move_dir_merge.

(svn_client_conflict_tree_get_resolution_options): Call the

new configure_option_sibling_move_merge helper function.

* subversion/svn/conflict-callbacks.c

(builtin_resolver_options): Add the new option

svn_client_conflict_option_local_move_dir_merge to list

of known built-in resolver options.

(build_tree_conflict_options): Get abspath candidates

for svn_client_conflict_option_local_move_dir_merge option.

(handle_tree_conflict): Perform ambiguous merge target selection

for svn_client_conflict_option_local_move_dir_merge.

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

(test_funcs): test_cherry_pick_post_move_edit_dir is now passing.

  1. … 2 more files in changeset.
Fix expectations of an XFAIL conflict resolver test.

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

(test_cherry_pick_post_move_edit_dir): Fix errors in paths used by

post-resolution checks.