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

Changeset 1370409 is being indexed.

* STATUS: Fix a typo in a branch name.
* STATUS: Query the justification for sorting 'svn import' output.
On the 'master-passphrase' branch: sync with recent trunk changes.

(Merged /subversion/trunk:r1368649-1370241.)

  1. … 19 more files in changeset.
On the 'master-passphrase' branch: Delay the acquisition of the master

password until it's needed to read from the store.

* subversion/libsvn_subr/pathetic_auth_store.c

(acquire_secret): Move higher in the source file.

(get_cred_hash, set_cred_hash): Call acquire_secret() as needed.

(pathetic_store_open): No longer call acquire_secret().

* subversion/tests/libsvn_subr/crypto-test.c

(open_auth_store): New helper function, cored from ...

(test_auth_store_basic): ... here.

In symmetric merge, defer the target WC checks for mixed-rev, local mods

and switched subtrees until after determining whether a reintegrate-like

merge is required, so that we can force doing the strict checks if so.

* subversion/include/private/svn_client_private.h

(svn_client__symmetric_merge_t): Add flags to store the requested

allow_mixed_rev, allow_local_mods, allow_switched_subtrees options.

* subversion/libsvn_client/merge.c

(svn_client__find_symmetric_merge): Don't check here; store the options


(do_symmetric_merge_locked): Do the requested checks here, or if it's a

reintegrate-like merge then force all three of the checks.

* subversion/svn/merge-cmd.c

(svn_cl__merge): Simplify the code slightly, as we know that the

'reintegrate' option is false in this block.

On the 'master-passphrase' branch:

* subversion/libsvn_subr/auth_store.h

(svn_auth__pathetic_store_create): Fix a stale comment.

Remove the "--symmetric" command-line option, which was made redundant in


* subversion/svn/cl.h

(svn_cl__opt_state_t): Remove the 'symmetric_merge' member.

* subversion/svn/main.c

(svn_cl__longopt_t): Remove the 'opt_symmetric' member.

(sub_main): Remove handling of the '--symmetric' option.

* subversion/tests/cmdline/

(symmetric_merge, subtree_to_and_fro,

merge_to_reverse_cherry_subtree_to_merge_to): Remove the '--symmetric'

option from merge commands.

On the 'master-passphrase' branch: Disentangle auth store

opening/creation actions.

* subversion/libsvn_subr/auth_store.h

(svn_auth__store_cb_open_t, svn_auth__store_open): Lose 'create' parameter.

(svn_auth__pathetic_store_get): Remove notes about store creation.

(svn_auth__config_store_get): Add note about auto-creation.

* subversion/libsvn_subr/auth_store.c

(svn_auth__store_open): Remove 'create' parameter and handling.

(svn_auth__get_store_from_parameters): Update call to svn_auth__store_open().

* subversion/libsvn_subr/cmdline.c

(open_auth_store): Update call to svn_auth__store_open().

* subversion/libsvn_subr/config_auth_store.c

(config_store_open): Remove 'create' parameter.

* subversion/libsvn_subr/pathetic_auth_store.c

(pathetic_store_open): Remove 'create' parameter.

* subversion/tests/libsvn_subr/crypto-test.c

(create_ephemeral_auth_store, test_auth_store_basic): Update calls

to svn_auth__store_open().

Remove the #ifdef SVN_WITH_SYMMETRIC_MERGE marker that was surrounding most

of the symmetric merge code.

* subversion/include/private/svn_client_private.h,



Remove definition and all uses of SVN_WITH_SYMMETRIC_MERGE.

Remove a helper function that has lost its helpfulness.

* subversion/libsvn_client/merge.c

(open_source_session): Remove.

(merge_locked, open_reintegrate_source_and_target, merge_peg_locked,

open_source_and_target): Adjust accordingly.

On the 'master-passphrase' branch: Get the GNOME Keyring master

passphrase provider working, too. At least, in theory. Doesn't seem

to work in practice on my machine just yet ... something about symbol

names not resolving or somesuch.

* subversion/include/svn_auth.h

svn_auth_get_gnome_keyring_master_passphrase_provider): New function.

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c



svn_auth_get_gnome_keyring_master_passphrase_provider): New functions.

(gnome_keyring_master_passphrase_provider): New structure instance.

* subversion/libsvn_subr/cmdline.c

(get_master_passphrase_auth_baton): New helper function, abstracted from...


* subversion/libsvn_subr/masterpass_providers.c

(get_provider): Fix expected symbol name for gnome-keyring and kwallet

master passphrase providers.

(svn_auth_get_platform_specific_master_passphrase_providers): Enable

GNOME Keyring master passphrase provider support.

Enable symmetric merge as the default 'svn merge' behaviour when there

is one source, no revision range, no --reintegrate option, and no

--ignore-ancestry option. Ignore the '--symmetric' option.

* subversion/include/private/svn_client_private.h

(svn_client__symmetric_merge_t): Move structure definition to here ...

* subversion/libsvn_client/merge.c

(svn_client__symmetric_merge_t): ... from here.

(do_symmetric_merge_locked): Reject unsupported options in reintegrate


* subversion/svn/merge-cmd.c

(symmetric_merge): If a reintegrate-like merge is required, reject

options that are unsupported options in reintegrate mode.

(svn_cl__merge): Do a symmetric merge if there is one source and no

revision range, '--reintegrate' or '--ignore-ancestry' options.

* subversion/tests/cmdline/

(dont_merge_revs_into_subtree_that_predate_it): Mark as XFail, because of

issue #4217 "Symmetric merge changes merge range notification

(merge_tests 78)".

* subversion/tests/cmdline/

(multiple_reintegrates_from_the_same_branch): Specify the revision range

explicitly for a record-only merge, since this merge would otherwise be

a reintegrate-like symmetric merge, for which record-only is no longer


Symmetric merge doesn't make sense with the 'ignore ancestry' option, since

it is all about merge tracking, so remove that option from its API and make

'svn merge' error out if both '--ignore-ancestry' and '--symmetric' options

are specified. (This makes sense at the moment, while symmetric merge is

specified explicitly. When we later teach 'svn merge' to do a symmetric

merge by default, then we may want to to handle this a different way.)

* subversion/include/private/svn_client_private.h

(svn_client__do_symmetric_merge): Remove the 'ignore_ancestry' parameter.

The doc string was wrong anyway: the option did prevent mergeinfo from

being used.

* subversion/libsvn_client/merge.c

(do_symmetric_merge_locked, svn_client__do_symmetric_merge): Remove the

'ignore_ancestry' parameter and use FALSE instead.

* subversion/svn/merge-cmd.c

(symmetric_merge): Remove the 'ignore_ancestry' parameter.

(svn_cl__merge): Error out if both '--ignore-ancestry' and '--symmetric'

options are specified.

* CHANGES: Add two more 1.7.6 items.
* build/generator/templates/build_locale.ezt:

Fix the relative path to the po directory, broken since build_locale.bat

was moved in r1034362. (Obvious fix.)

* build/generator/templates/build_locale.ezt,

* build/generator/templates/build_zlib.ezt:

s/not errorlevel 0/errorlevel 1/. "not errorlevel 0" is always false, since

"errorlevel X" tests for %errorlevel% >= X.

Obvious fix.

* subversion/svn/file-merge.c

(get_term_width): Plug a file descriptor leak: Close the file descriptor

used for the TIOCGWINSZ ioctl() call.

* publish/docs/release-notes/1.8.html

(file-merge-tool): I've tweaked the output again so update the example

output in the release notes, too.

* subversion/svn/file-merge.c

(svn_cl__merge_file): Leave the file in conflict if installing the merged

result fails and extend the corresponding error message accordingly.

Provide additional notifications at the beginning and end of a file merge.

* subversion/svn/cl.h

(svn_cl__merge_file): Declare path_prefix parameter.

* subversion/svn/conflict-callbacks.c

(svn_cl__conflict_handler): Pass path_prefix to the file merge tool.

* subversion/svn/file-merge.c

(svn_cl__merge_file): New path_prefix parameter. Display the file's name

at the start of the merge, and add a nofication at the end of the merge

indicating whether the file remains in conflict.

* publish/docs/release-notes/1.8.html

(file-merge-tool): Show current version of file merge prompt text.

* subversion/svn/file-merge.c

(merge_chunks): Slight wording tweak in file merge menu prompt.

Merge r1368128 from trunk:

* r1368128

Segfault in handling deleted wc items.


Unknown circumstances can lead to the situation that neither

the relpath for BASE nor the one for WORK are available.

The patch makes the implicit assumption of the latter being

non-NULL if the first isn't explicit. Even if the root cause

was random wc corruption, this patch will at least make our

code more robust.

This issue is also the 3rd-most common cause of SVN lib related

crashes reported in TSVN.


+1: stefan2, steveking, philip

Merge r1368065 from trunk:

* r1368065

Incomplete copy information leading to segfault.


Although this doesn't address nor identify the root cause of

the problem, it is still better to return an svn_error_t*

instead of simply segfaulting.

This issue is also the most common cause of SVN lib related

crashes reported in TSVN.


+1: stefan2, steveking, philip

Merge the r1368197 group from trunk:

* r1368197, r1368198

Fix issue #4216 ("Error updating relocated working copy with

server-relative externals defined").


Fixes user-reported problem.


r1368197: This contains the actual fix.

r1368198: This contains some follow-up comment tweaks that help

explain the relevant code region more thoroughly.


+1: cmpilato, brane, steveking

Adjust SVN_DBG to print into a stack buffer instead of an APR pool, to avoid

concerns about the size of the pool growing indefinitely. A follow-up to


Suggested by: gstein

* subversion/libsvn_subr/debug.c

(debug_pool): Remove.

(svn_dbg__preamble): Remove the creation of the pool.

(debug_vprintf): Use stack buffers.

Tweak the SVN_DBG_PROPS macro to print the caller's file and line info

on every line, rather than printing the caller's info on the header line and

this function's file and line info on the subsequent lines.

* subversion/libsvn_subr/debug.c

(svn_dbg__print_props): Use svn_dbg__printf() instead of SVN_DBG().

Make the SVN_DBG macro print the prefix before every line of output if the

formatted string contains embedded newline characters. Also make a final

newline character optional so that the developer can write SVN_DBG(("..."))

instead of SVN_DBG(("...\n")).

* subversion/libsvn_subr/debug.c

(debug_pool, debug_file, debug_line): New variables.

(svn_dbg__preamble): Create a pool, the first time we're called. Just

store the prefix information instead of printing it. (Note: this isn't

thread-safe; it already wasn't.)

(print_line): Rename to debug_vprintf. Prefix each line of output.

(svn_dbg__printf, svn_dbg__print_props): Track the rename.

On the 'master-passphrase' branch: Add the framework for supporting

the obvious additional platform-specific master passphrase providers.

* subversion/include/private/svn_auth_private.h


* subversion/include/svn_auth.h

(svn_auth_master_passphrase_provider_func_t): New function type.

(svn_auth_get_platform_specific_master_passphrase_providers): New function.

* subversion/libsvn_subr/auth.c


(svn_auth_get_platform_specific_client_providers): Use


* subversion/libsvn_subr/cmdline.c

(open_auth_store): Add 'cfg' parameter, and now call

svn_auth_get_platform_specific_master_passphrase_providers() instead

of explicitly referencing the gpg-agent master passphrase provider.

(svn_cmdline_create_auth_baton): Update call to open_auth_store().

* subversion/libsvn_subr/masterpass_providers.c

(get_provider, svn_auth_get_platform_specific_master_passphrase_providers):

New functions.

* STATUS: Vote/approve r1368065 and r1368128.