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

Changeset 874078 is being indexed.

Support the 'kwallet-wallet' configuration option which is used to specify

which wallet should be used by Subversion.

* subversion/include/svn_config.h


* subversion/libsvn_auth_kwallet/kwallet.cpp

(get_wallet_name): New.

(kwallet_password_get, kwallet_password_set): Use get_wallet_name().

* subversion/libsvn_subr/config_file.c

(svn_config_ensure): Update the default 'config' file.

Pass client configuration to authentication baton.

* subversion/include/svn_auth.h


(SVN_AUTH_PARAM_CONFIG): Update value.

* subversion/libsvn_ra_neon/session.c

(svn_ra_neon__open): Store SVN_AUTH_PARAM_CONFIG_CLIENT parameter in

authentication baton.

* subversion/libsvn_ra_serf/serf.c

(load_config): Store SVN_AUTH_PARAM_CONFIG_CLIENT parameter in

authentication baton.

On the issue-3067-deleted-subtrees branch: Correct the expectations of an

XFailing --reintegrate merge test.

* subversion/tests/cmdline/

(reintegrate_branch_never_merged_to): Another small expectation change,

another big comment to explain why.

Pass parameters instead of configuration to implementations of

svn_auth__password_get_t / svn_auth__password_set_t.

* subversion/include/private/svn_auth_private.h

(svn_auth__password_get_t, svn_auth__password_set_t,

svn_auth__simple_password_get, svn_auth__simple_password_set): Replace

'config' argument with 'parameters'.

* subversion/libsvn_subr/simple_providers.c

(svn_auth__simple_password_get, svn_auth__simple_password_set): Replace

'config' argument with 'parameters'.

(svn_auth__simple_first_creds_helper): Update call to password_get().

(svn_auth__simple_save_creds_helper): Delete 'cfg' and update call to


* subversion/libsvn_subr/ssl_client_cert_pw_providers.c

(simple_passphrase_get, simple_passphrase_set): Replace 'config' argument

with 'parameters'.

(svn_auth__ssl_client_cert_pw_file_first_creds_helper): Update call to


(svn_auth__ssl_client_cert_pw_file_save_creds_helper): Delete 'cfg' and

update call to passphrase_set().

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

(gnome_keyring_password_get, gnome_keyring_password_set):

* subversion/libsvn_auth_kwallet/kwallet.cpp

(kwallet_password_get, kwallet_password_set):

* subversion/libsvn_subr/macos_keychain.c

(keychain_password_set, keychain_password_get): Replace 'config' argument

with 'parameters'.

* subversion/libsvn_subr/win32_crypto.c

(windows_password_encrypter): Replace 'config' argument with 'parameters'

and update call to svn_auth__simple_password_set().

(windows_password_decrypter): Replace 'config' argument with 'parameters'

and update call to svn_auth__simple_password_get().

French translation update for r33999

* subversion/po/fr.po: po-update & 1 fuzzy fixed

Implement a seemingly better way of notifying about a tree-conflict.

Instead of using a TREE_CONFLICTED flag in svn_wc_notify_t, rather use

a new, separate svn_wc_notify_action_t enum value. This also removes all

other letters ('A', 'D'...) from tree-conflict notifications ("by force").

## TODO: This doesn't mean that the actions are actually skipped, though.

* subversion/tests/cmdline/

(tree_conflicts_on_switch_1_2, tree_conflicts_on_switch_2_1,

tree_conflicts_on_switch_2_2, tree_conflicts_on_switch_3):

Fix up these tests (omitting 'D' notification on tree-conflicts).

* subversion/tests/cmdline/

(tree_conflicts_on_update_1_2, tree_conflicts_on_update_2_1,

tree_conflicts_on_update_2_2, tree_conflicts_on_update_3):

Fix up these tests (omitting 'D' notification on tree-conflicts).

* subversion/tests/cmdline/

(del_differing_file, tree_conflicts_on_merge_local_ci_5_1,



Fix up these tests (add '--- Merging rN...' output lines).

* subversion/svn/notify.c (notify): Introduce a separate switch case for

tree-conflicts notification. Remove all inline notification of

tree-conflicts from the other notification cases. Use the new way of

sending a tree-conflicts notification.

* subversion/include/svn_wc.h

(svn_wc_notify_action_t): Add enum value SVN_WC_NOTIFY_TREE_CONFLICT.

(svn_wc_notify_t): Remove TREE_CONFLICTED flag.

* subversion/libsvn_wc/util.c (svn_wc_create_notify):

Do not initialize the removed field TREE_CONFLICTED.

* subversion/libsvn_wc/update_editor.c

(do_entry_deletion, add_directory, open_directory, close_directory,

open_file, close_file): Use the new way of tree-conflict notification.

* subversion/libsvn_client/repos_diff.c

(delete_entry, add_directory, close_file, close_directory):

Use the new way of tree-conflict notification.

* subversion/libsvn_client/merge.c

(IS_OPERATIVE_MERGE): Add tree-conflicted cases to this condition macro.

(single_file_merge_notify, do_file_merge):

Use the new way of tree-conflict notification.

* tools/dist/

Accept the '-pre X' suffix for releases. A pre-release isn't an alpha or

a beta, but rather a nebulous term meaning either!

Fix some typos.

* subversion/include/svn_client.h

(svn_client_commit_item3_t, svn_client_commit_item_create2,

svn_client_ctx_t, svn_client_create_context):

* subversion/include/svn_wc.h

(svn_wc_external_item2_t, svn_wc_external_item_create):

* subversion/libsvn_client/ctx.c:

* subversion/libsvn_wc/lock.c

(adm_access_alloc): Fix typos in doc strings.

* subversion/tests/cmdline/svntest/



(_usage_exit): Fix calls to print() for compatibility with Python 2.

Python 3 compatibility:

Update calls to print() in 'subversion/tests' directory.

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/svntest/

* subversion/tests/cmdline/svntest/

* subversion/tests/cmdline/svntest/

* subversion/tests/cmdline/svntest/

* subversion/tests/cmdline/svntest/

* subversion/tests/cmdline/svntest/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/ Call print() or file.write().

  1. … 13 more files in changeset.
In the client commit code, convert a "not found" error to the more

helpful "out of date" error.

This follows up on work done on the double-delete branch, which was

merged to trunk in r32901.

* subversion/tests/cmdline/

(commit_out_of_date_deletions): Expect "out of date" instead of

"File not found: transaction".

* subversion/libsvn_client/commit_util.c

(fixup_out_of_date_error): New function.

(do_item_commit): Convert certain RA errors to "out of date".

* subversion/libsvn_repos/commit.c

(out_of_date): Minor tweak to error text.

On the reintegrate-improvements branch: New API for making deep copies of

mergeinfo catalogs.

* subversion/include/svn_mergeinfo.h

(svn_mergeinfo_catalog_dup): New declaration.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo_catalog_dup): New definition.

* subversion/tests/cmdline/

(checkout_peg_rev_date): Sleep for one second instead of for a minute.

Removing branch tc-merge-notify, which was merged to trunk.

Rename kind_action_state_t to deleted_path_notify_t, the former describing

what fields it had (KIND, ACTION and STATE, plus now TREE_CONFLICTED), and

the latter describing what it is used for.

* subversion/libsvn_client/repos_diff.c:

(kind_action_state_t): Rename to deleted_path_notify_t.

(deleted_path_notify_t): New name of kind_action_state_t.

(edit_baton, delete_entry, add_directory, close_file, close_directory):

Apply rename of kind_action_state_t to deleted_path_notify_t and rename

instance variables KAS to DPN.

Merge (lightweight) branch tc-merge-notify to trunk.

Implement per-victim tree-conflicts notification during merge.

Use newly implemented notification style in merge operations (as done

for update/switch recently).

Do not show `Skipped' messages within newly tree-conflicted directories.

Pass a boolean SKIP down the item batons and completely skip *all*

action in the editor if SKIP is TRUE (i.e. don't even call diff callbacks).

Since the diff callbacks don't have an item baton to fill, I solved it

by skipping child nodes already in the general editor that calls the diff

callbacks. But it would probably do this code good to move to a standard

editor implementation altogether, like `update/switch' does it.

* subversion/include/svn_wc.h (svn_wc_diff_callbacks3_t): Add a svn_boolean_t

*TREE_CONFLICTED argument to all of the callbacks functions, which

returns whether the callback wants this node to be notified as

tree-conflicted. Returning TRUE in *TREE_CONFLICTED makes a repos

diff (and consequently a merge) skip any child nodes.

* subversion/libsvn_wc/diff.c

(file_diff, directory_elements_diff, report_wc_file_as_added,

report_wc_directory_as_added, delete_entry, close_directory,

close_file): Pass NULL for new *TREE_CONFLICTED parameter upon calling

the svn_wc_diff_callbacks3_t callback functions. Currently, handling

tree-conflicts notifications here is not needed, since there is no

code using it. Note that this variant of diff will also not skip

child nodes of a tree-conflicted item for the same reason.

* subversion/libsvn_client/repos_diff.c

(dir_baton, file_baton): Add two booleans TREE_CONFLICTED and SKIPPED.

(make_dir_baton, make_file_baton): Default TREE_CONFLICTED to FALSE.


(delete_entry, add_directory, open_directory, close_file, close_directory):

Pass the tree-conflict state through to the notify_func, and change some

of the logic around the notify action to not show tree-conflicts as

skipped paths.

(delete_entry, add_directory, open_directory, add_file, open_file):

Skip *all* action if the parent node is SKIPped or TREE_CONFLICTED.

Propagate the SKIP flag to child batons where necessary.

(window_handler, apply_textdelta, close_file, close_directory,

change_file_prop, change_dir_prop): Skip *all* action if this node's

SKIP flag is TRUE.

(kind_action_state_t): Add a boolean TREE_CONFLICTED field (breaking the

name kind_action_state_t which says "it has a kind, an action and a

state") used for notification of deleted nodes.

(absent_directory, absent_file): Add a question comment.

* subversion/libsvn_client/merge.c

(merge_props_changed, merge_file_changed, merge_file_added,

merge_file_deleted, merge_dir_added, merge_dir_deleted, merge_dir_opened,

merge_dir_closed, single_file_merge_notify, do_file_merge): Apply addition

of new callbacks argument called *TREE_CONFLICTED and use it.

(merge_cmd_baton_t): Remove obsoleted field TREE_CONFLICTED_DIRS which

used to list all dirs that contain tree-conflicts.

(add_parent_to_tree_conflicted_dirs, is_tree_conflicted_dir_p): Remove

obsoleted functions related to TREE_CONFLICTED_DIRS.

(do_merge, tree_conflict): Remove use of TREE_CONFLICTED_DIRS.

* subversion/libsvn_client/diff.c

(diff_props_changed, diff_file_changed, diff_file_added,

diff_file_deleted_with_diff, diff_file_deleted_no_diff,

diff_dir_added, diff_dir_deleted, diff_dir_opened, diff_dir_closed):

Apply addition of callbacks parameter *TREE_CONFLICTED and ignore it.

These are the callbacks for a plain diff, they don't cause

tree-conflicts by definition.

* subversion/tests/cmdline/

(delete_file_and_dir, merge_catches_nonexistent_target,

merge_tree_deleted_in_target, merge_added_dir_to_deleted_in_target,

three_way_merge_add_of_existing_binary_file, del_differing_file,



tree_conflicts_on_merge_local_ci_4_2, tree_conflicts_on_merge_local_ci_5_1,

tree_conflicts_on_merge_local_ci_5_2, tree_conflicts_on_merge_local_ci_6,





tree_conflicts_on_merge_no_local_ci_6): Fix up some tests. Intentionally

leaving some merge tests unfixed for now. Their common problem shall be

fixed on trunk, since update/switch/checkout are also affected.

  1. … 8 more files in changeset.
Follow on to r33082: 'Merge the tree-conflicts branch back to trunk. This

implements basic tree conflict detection for most cases.'

Since the directory in this test is now being detected as conflicted, just

mark it resolved and move on.

* subversion/bindings/swig/ruby/test/test_client.rb

(SvnClientTest#assert_merge): Mark the directory conflict resolved.

Follow on to r32901: 'Merge the double-delete branch back to trunk, fixing

issue #3156 "Delete should conflict with delete (at the repos level)"


This change exposed a bug in the test below which was trying to copy a path

after it had been deleted.

* subversion/bindings/swig/ruby/test/test_delta.rb

(SvnDeltaTest#test_changed): cp a path being tested before rm-ing it.

Bring branch tc-merge-notify up to trunk r33985.
    • ?
    • ?
    • ?
  1. … 50 more files in changeset.
* subversion/bindings/ctypes-python/

(build, build.validate_options): Look for apr-1-config / apu-1-config before

apr-config / apu-config.

On the issue-3067-deleted-subtrees branch: Correct the expectations of an

XFailing --reintegrate merge test.

* subversion/tests/cmdline/

(reintegrate_with_rename): Small expectation change, big comment to

explain why.

A fix for a tree conflict problem reported by Mark Phippard.

If update/switch caused a tree conflict by trying to delete a modified

item, the working copy became unusable. The user couldn't svn

add/cp/rm/up/ci at all. And svn resolved didn't help, because it

restored the original state that triggered the tree conflict.

This commit changes the update editor so that an incoming delete

action will delete a tree conflict victim (and items inside it),

instead of skipping the deletion.

Such a victim, or the modified items inside it, can be reinstated via

svn add/cp. Or the user can accept the incoming change ("theirs

full") via "rm" or "rm -rf".

The email thread for the bug report starts at:

* subversion/libsvn_wc/update_editor.c

(do_entry_deletion): Don't bail out after recording a tree conflict.

Include tree-conflict status in deletion notification.

* subversion/tests/cmdline/







tree_conflicts_on_update_3): Expect update to delete tree conflict

victims and items inside them.

* subversion/tests/cmdline/





tree_conflicts_on_switch_3): Expect update to delete tree conflict

victims and items inside them.

* subversion/tests/cmdline/

(tree_conflicts_resolved): Expect update to delete tree conflict

victims and items inside them.

* subversion/tests/cmdline/

(revert_tree_conflicts_in_updated_files): Expect update to delete

tree conflict victims and items inside them.

* subversion/tests/cmdline/

(status_with_tree_conflicts): Expect update to delete tree conflict

victims and items inside them.

Remove a TODO.

* TODO-1.6

Removed JavaHL Notifications for tree conflicts. Completed

by hwright with r33698, r33699.

* subversion/libsvn_wc/update_editor.c

Add a whole-file doc string.

French translation update for r33979.

* subversion/po/fr.po: po-update and 2 fuzzy fixed.

French translation update for r33974.

* subversion/po/fr.po: po-update, many fixes and new translations.

On the svnpatch-diff branch: Merge 33893:33977 from trunk.

    • ?
    • ?
  1. … 115 more files in changeset.
More stream API simplification.

* subversion/libsvn_ra/compat.c,









Use svn_stream_open_unique() and svn_stream_open_readonly() where possible.

TODO-1.6: Update.
Teach the Berkeley DB backend to store both MD5 and SHA1 checksums -- as

available and allowed for the FS format -- in the `representations' table.

* subversion/libsvn_fs_base/notes/structure

(Representations): Tweak BNF to show that we'll always store MD5,

and possibly also store SHA1, for representations.

* subversion/libsvn_fs/fs-loader.h,

* subversion/libsvn_fs/fs-loader.c

(root_vtable_t): Add 'kind' parameter to file_checksum() method,

passed into providers' file_checksum implementations.

* subversion/libsvn_fs_fs/tree.c

(fs_file_checksum): Add 'kind' parameter, and use it to filter the

returned data.

* subversion/libsvn_fs_base/fs.h

(representation_t): Rename 'checksum' member to 'md5_checksum', and

add 'sha1_checksum' member.

* subversion/libsvn_fs_base/reps-strings.h

(svn_fs_base__rep_contents_checksums): Was

svn_fs_base__rep_contents_checksum(). Rename 'checksum' parameter

to 'md5_checksum', and add 'sha1_checksum' parameter.

* subversion/libsvn_fs_base/reps-strings.c

(svn_fs_base__rep_contents_checksums): Was

svn_fs_base__rep_contents_checksum(). Rename 'checksum' parameter

to 'md5_checksum', and add 'sha1_checksum' parameter.

(make_fulltext_rep): Rename 'checksum' parameter to 'md5_checksum',

and add 'sha1_checksum' parameter, duping both.

(svn_fs_base__get_mutable_rep): Update call to make_fulltext_rep.

(txn_body_read_rep): Compare both MD5 and SHA1 checksums against

their stored values where possible.

(svn_fs_base__rep_contents): Allow checksum tests of either type of

checksum, but prefer a SHA1 comparison.

(struct rep_write_baton): Rename 'checksum_ctx' and 'checksum' to

'md5_checksum_ctx' and 'md5_checksum', respective; add

'sha1_checksum_ctx' and 'sha1_checksum'.

(rep_write_get_baton): Track renamed baton members, and also

initialize an MD5 checksum context.

(txn_body_write_rep): Update both checksum contexts.

(txn_body_write_close_rep): Copy both checksum contexts into the


(rep_write_close_contents): Finalize both checksum contexts.

(rep_contents_clear): Clear both representation checksums.

(svn_fs_base__rep_deltify): Use both representation checksums.

* subversion/libsvn_fs_base/dag.h

(svn_fs_base__dag_file_checksum): Add 'checksum_kind' parameter.

* subversion/libsvn_fs_base/dag.c

(svn_fs_base__dag_file_checksum): Add 'checksum_kind' parameter, and

update call to svn_fs_base__rep_contents_checksums().

(maybe_store_checksum_rep): Update call to


(svn_fs_base__dag_finalize_edits): Update calls to

svn_fs_base__rep_contents_checksums(), performing checksum

comparisons against either MD5 or SHA1 as requested (if possible).

* subversion/libsvn_fs_base/tree.c

(struct file_checksum_args): Add 'kind' variable.

(txn_body_file_checksum): Pass baton's 'kind' into updated call to


(base_file_checksum): Add 'kind' parameter, and use it to populate

baton's 'kind' variable.

(txn_body_apply_textdelta): Update call to svn_fs_base__dag_file_checksum(),

asking for the same kind of checksum as the one we'll compare against.

* subversion/libsvn_fs_base/util/fs_skels.h

(svn_fs_base__unparse_representation_skel): Add 'format' parameter.

* subversion/libsvn_fs_base/util/fs_skels.c

(is_valid_representation_skel, svn_fs_base__parse_representation_skel):

Handle new representation format.

(prepend_checksum): New helper function.

(svn_fs_base__unparse_representation_skel): Add 'format' parameter,

and use prepend_checksum() as needed to handle the new

representation skel format.

* subversion/libsvn_fs_base/bdb/reps-table.c

(svn_fs_bdb__write_rep): Pass filesystem format version to updated

call to svn_fs_base__unparse_representation_skel().

* subversion/tests/libsvn_fs_base/strings-reps-test.c

(txn_body_read_rep): Update call to svn_fs_base__unparse_representation_skel.