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

Changeset 1424037 is being indexed.

Add a new function to the cmdline library to determine whether standard

input is connected to a terminal device, and set the --non-interactive

option if standard input is not connected to a terminal device.

The idea is to make 'svn' non-interactive by default if run from scripts

which are launched in some unattended automated fashion. In such a situation

it is possible for scripts to hang if 'svn' decides to prompt for information

such as login credentials or conflict resolution options.

Also add a new --force-interactive option which enforces the old behaviour.

* subversion/include/svn_cmdline.h

(svn_cmdline__stdin_isatty): Declare.

* subversion/libsvn_subr/cmdline.c: Include io.h on Windows.

(svn_cmdline__stdin_isatty): New.

* subversion/svn/cl.h

(svn_cl__opt_state_t): Add force_interactive option.

* subversion/svn/svn.c

(svn_cl__longopt_t): Add opt_force_interactive.

(sub_main): Set the --non-interactive option based on whether stdin is a tty,

unless interactive mode has been forced with --force-interactive.

Enforce mutual exclusion of --non-interactive and --force-interactive.

* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout: Adjust.

* subversion/tests/cmdline/update_tests.py

(eof_in_interactive_conflict_resolver): Pass --force-interactive to ensure

the interactive conflict resolver will be run as expected.

  1. … 5 more files in changeset.
* subversion/include/svn_fs.h,

* subversion/include/svn_diff.h,

* subversion/include/svn_dav.h,

* subversion/include/svn_mergeinfo.h,

* subversion/include/svn_editor.h,

* subversion/include/svn_repos.h,

* subversion/include/svn_delta.h,

* subversion/include/svn_subst.h,

* subversion/include/svn_types.h,

* subversion/include/svn_config.h,

* subversion/include/svn_io.h,

* subversion/include/svn_wc.h,

* subversion/include/svn_cmdline.h,

* subversion/include/svn_client.h,

* subversion/include/svn_ra.h

Fix typos in comments.

  1. … 14 more files in changeset.
Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.

* NOTICE:

Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.
Fix some outdated stylistic conventions. Whitespace should not occur

before a open-parentheses that is part of a function definition,

declaration, or type definition. In all these cases, shift the open-paren

up one line to the func/type name.

No functional change.

* subversion/include/svn_delta.h:

* subversion/include/svn_types.h:

* subversion/include/svn_wc.h:

* subversion/include/svn_cmdline.h:

* subversion/include/svn_client.h:

* subversion/include/svn_auth.h:

* subversion/include/svn_opt.h:

* subversion/include/svn_ra.h:

(): adjust declarations to avoid whitespace before func paren.

Found by: blair

  1. … 7 more files in changeset.
Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.

* LICENSE: New.

* COPYING,

subversion/LICENSE: Remove.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the SVN Corp, and that it contains contributions from

many people, as referenced in NOTICE.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS:

Relicense the SVN parts under Apache 2.0.

* everywhere:

Change copyright notices in file headers to reflect the Apache 2.0 license.

  1. … 882 more files in changeset.
Adjust a bunch of our public header files:

- make sure everything the header needs is included

- make sure nothing is included which is NOT needed

Added an exception to svn_types.h: it now explicitly includes svn_error.h

since Everybody needs that thing. We go ahead and make it easy for them,

even though that is counter-philosophy.

After altering the header files, some .c files in our codebase would not

compile -- they used stuff that they did not explicitly include. Thus, a

goodly number of .c files were updated, too.

* subversion/libsvn_ra/wrapper_template.h:

* subversion/libsvn_ra/deprecated.c:

* subversion/libsvn_ra/compat.c:

* subversion/libsvn_subr/iter.c:

* subversion/libsvn_subr/cmdline.c:

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c:

* subversion/libsvn_subr/error.c:

* subversion/libsvn_subr/auth.c:

* subversion/libsvn_subr/opt.c:

* subversion/libsvn_subr/checksum.c:

* subversion/libsvn_subr/compat.c:

* subversion/libsvn_subr/sha1.c:

* subversion/libsvn_subr/deprecated.c:

* subversion/libsvn_subr/ssl_server_trust_providers.c:

* subversion/mod_dav_svn/activity.c:

* subversion/mod_dav_svn/reports/log.c:

* subversion/tests/libsvn_fs/fs-test.c:

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

* subversion/svn/list-cmd.c:

* subversion/svn/changelist-cmd.c:

* subversion/svn/log-cmd.c:

* subversion/svn/conflict-callbacks.c:

* subversion/libsvn_fs_base/dag.c:

* subversion/libsvn_fs_base/util/fs_skels.c:

* subversion/include/svn_dirent_uri.h:

* subversion/include/svn_error_codes.h:

* subversion/include/svn_fs.h:

* subversion/include/svn_diff.h:

* subversion/include/svn_sorts.h:

* subversion/include/svn_mergeinfo.h:

* subversion/include/svn_base64.h:

* subversion/include/svn_dso.h:

* subversion/include/svn_ra_svn.h:

* subversion/include/svn_repos.h:

* subversion/include/svn_delta.h:

* subversion/include/svn_path.h:

* subversion/include/svn_subst.h:

* subversion/include/svn_xml.h:

* subversion/include/svn_props.h:

* subversion/include/svn_iter.h:

* subversion/include/svn_types.h:

* subversion/include/svn_config.h:

* subversion/include/svn_string.h:

* subversion/include/svn_io.h:

* subversion/include/svn_wc.h:

* subversion/include/svn_cmdline.h:

* subversion/include/svn_client.h:

* subversion/include/svn_user.h:

* subversion/include/svn_hash.h:

* subversion/include/svn_md5.h:

* subversion/include/svn_error.h:

* subversion/include/svn_pools.h:

* subversion/include/private/svn_log.h:

* subversion/include/svn_time.h:

* subversion/include/svn_utf.h:

* subversion/include/svn_auth.h:

* subversion/include/svn_ra.h:

* subversion/include/svn_opt.h:

* subversion/include/svn_checksum.h:

* subversion/libsvn_wc/deprecated.c:

* subversion/libsvn_wc/util.c:

* subversion/libsvn_wc/merge.c:

* subversion/libsvn_wc/tree_conflicts.c:

* subversion/libsvn_client/list.c:

* subversion/libsvn_client/log.c:

* subversion/libsvn_ra_neon/util.c:

* subversion/libsvn_ra_neon/log.c:

* subversion/libsvn_repos/deprecated.c:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_fs_fs/fs_fs.c:

(): adjust #include statements appropriately

  1. … 69 more files in changeset.
Rename svn_auth_unlock_prompt_func_t to

svn_auth_gnome_keyring_unlock_prompt_func_t.

Rename svn_cmdline_auth_unlock_prompt() to

svn_cmdline__auth_gnome_keyring_unlock_prompt().

* subversion/include/svn_auth.h

(svn_auth_unlock_prompt_func_t): Rename to ...

(svn_auth_gnome_keyring_unlock_prompt_func_t): ... this.

(svn_auth_get_gnome_keyring_simple_provider,

svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider): Fix doc string.

* subversion/include/svn_cmdline.h

* subversion/libsvn_subr/prompt.c

(svn_cmdline_auth_unlock_prompt): Rename to ...

* subversion/include/private/svn_cmdline_private.h

* subversion/libsvn_subr/prompt.c

(svn_cmdline__auth_gnome_keyring_unlock_prompt): ... this.

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

(simple_gnome_keyring_first_creds,

simple_gnome_keyring_save_creds,

ssl_client_cert_pw_gnome_keyring_first_creds,

ssl_client_cert_pw_gnome_keyring_save_creds): Update.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): Update.

  1. … 5 more files in changeset.
* subversion/include/svn_cmdline.h

(svn_cmdline_auth_plaintext_prompt,

svn_cmdline_auth_plaintext_passphrase_prompt,

svn_cmdline_auth_unlock_prompt): State the type of the 'baton' parameter.

Follow up r34977.

Remove cmdline prompt added to a library function.

* subversion/libsvn_subr/auth.c

(): Include svn_cmdline.h

(svn_auth_get_platform_specific_provider): Change parameters passed to GNOME

Keyring provider function.

* subversion/libsvn_subr/prompt.c

(svn_cmdline_auth_unlock_prompt): New function to prompt for unlocking GNOME

Keyring.

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

(unlock_prompt_provider_baton_t): New baton.

(get_default_keyring_name): New function to return default keyring's name.

(check_keyring_is_locked): New function to check whether a keyring is locked.

(gnome_keyring_unlock_keyring): Modified to unlock the provided keyring with

a password supplied.

(gnome_keyring_password_get, gnome_keyring_password_set): Get default

keyring name with the new function.

(gnome_keyring_simple_first_creds, gnome_keyring_simple_save_creds): Check

if the keyring is locked and throw a prompt in order to get the password

and unlock it.

(svn_auth_get_gnome_keyring_simple_provider): Change signature in order to

accept a prompt function. Since this API was added for 1.6, the name

remains the same.

* subversion/include/svn_cmdline.h

(svn_cmdline_auth_unlock_prompt): New function signature added.

* subversion/include/svn_auth.h

(svn_auth_unlock_prompt_func_t): New callback.

(svn_auth_unlock_provider_func_t): New function type returning GNOME Keyring

authentication provider.

(svn_auth_get_gnome_keyring_simple_provider): Change signature.

  1. … 4 more files in changeset.
Revert r34223 and r34221.

Suggested by: rhuijben

  1. … 6 more files in changeset.
Implement termination of authentication providers.

* subversion/include/svn_auth.h

(svn_auth_provider_t.terminate_provider): New function which terminates

authentication provider.

* subversion/include/svn_cmdline.h

(svn_cmdline_terminate_auth_baton): New function which terminates all

authentication providers in authentication baton, which have non-NULL

terminate_provider() function.

* subversion/libsvn_subr/cmdline.c

(provider_set_t): New structure.

(svn_cmdline_terminate_auth_baton): New function which terminates all

authentication providers in authentication baton, which have non-NULL

terminate_provider() function.

* subversion/libsvn_subr/auth.c

(svn_auth_baton_t): Move from here ...

* subversion/include/private/svn_auth_private.h

(svn_auth_baton_t): ... to here.

* subversion/svn/main.c

(main): Call svn_cmdline_terminate_auth_baton().

* subversion/svnsync/main.c

(main): Call svn_cmdline_terminate_auth_baton().

  1. … 6 more files in changeset.
Delete trailing whitespace.

Follow-up to r26317 and r27598.

* build/generator/extractor.py:

* build/generator/gen_vcnet_vcproj.py:

* build/generator/gen_win.py:

* contrib/client-side/svnmerge/svnmerge-migrate-history-remotely.py:

* subversion/bindings/ctypes-python/csvn/repos.py:

* subversion/bindings/ctypes-python/csvn/wc.py:

* subversion/bindings/ctypes-python/examples/mucc.py:

* subversion/bindings/ctypes-python/setup.py:

* subversion/bindings/ctypes-python/test/localrepos.py:

* subversion/bindings/ctypes-python/test/remoterepos.py:

* subversion/bindings/ctypes-python/test/run_all.py:

* subversion/bindings/ctypes-python/test/svntypes.py:

* subversion/bindings/ctypes-python/test/wc.py:

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/Operation.java:

* subversion/include/private/svn_auth_private.h:

* subversion/include/private/svn_sqlite.h:

* subversion/include/private/svn_wc_private.h:

* subversion/include/svn_auth.h:

* subversion/include/svn_checksum.h:

* subversion/include/svn_client.h:

* subversion/include/svn_cmdline.h:

* subversion/include/svn_dirent_uri.h:

* subversion/include/svn_path.h:

* subversion/include/svn_props.h:

* subversion/libsvn_client/commit_util.c:

* subversion/libsvn_client/copy.c:

* subversion/libsvn_client/deprecated.c:

* subversion/libsvn_client/export.c:

* subversion/libsvn_client/externals.c:

* subversion/libsvn_client/info.c:

* subversion/libsvn_client/merge.c:

* subversion/libsvn_client/mergeinfo.h:

* subversion/libsvn_client/ra.c:

* subversion/libsvn_client/repos_diff.c:

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

* subversion/libsvn_fs_base/bdb/checksum-reps-table.h:

* subversion/libsvn_fs_base/bdb/miscellaneous-table.c:

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

* subversion/libsvn_fs_base/dag.c:

* subversion/libsvn_fs_base/dag.h:

* subversion/libsvn_fs_base/err.h:

* subversion/libsvn_fs_base/fs.c:

* subversion/libsvn_fs_base/reps-strings.c:

* subversion/libsvn_fs_base/tree.c:

* subversion/libsvn_fs_base/tree.h:

* subversion/libsvn_fs_base/util/fs_skels.c:

* subversion/libsvn_fs_fs/dag.h:

* subversion/libsvn_fs_fs/fs_fs.h:

* subversion/libsvn_fs/fs-loader.c:

* subversion/libsvn_fs/fs-loader.h:

* subversion/libsvn_fs_fs/rep-cache.c:

* subversion/libsvn_fs_fs/rep-cache.h:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_ra/compat.c:

* subversion/libsvn_ra_neon/log.c:

* subversion/libsvn_ra_neon/session.c:

* subversion/libsvn_ra_serf/log.c:

* subversion/libsvn_ra_serf/update.c:

* subversion/libsvn_ra_serf/util.c:

* subversion/libsvn_ra_serf/win32_auth_sspi.c:

* subversion/libsvn_repos/hooks.c:

* subversion/libsvn_repos/log.c:

* subversion/libsvn_repos/repos.h:

* subversion/libsvn_subr/checksum.c:

* subversion/libsvn_subr/cmdline.c:

* subversion/libsvn_subr/config_file.c:

* subversion/libsvn_subr/config_win.c:

* subversion/libsvn_subr/dirent_uri.c:

* subversion/libsvn_subr/dso.c:

* subversion/libsvn_subr/io.c:

* subversion/libsvn_subr/nls.c:

* subversion/libsvn_subr/simple_providers.c:

* subversion/libsvn_subr/sqlite.c:

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c:

* subversion/libsvn_subr/stream.c:

* subversion/libsvn_subr/win32_crypto.c:

* subversion/libsvn_wc/adm_ops.c:

* subversion/libsvn_wc/diff.c:

* subversion/libsvn_wc/props.c:

* subversion/libsvn_wc/status.c:

* subversion/libsvn_wc/tree_conflicts.c:

* subversion/libsvn_wc/tree_conflicts.h:

* subversion/libsvn_wc/update_editor.c:

* subversion/libsvn_wc/wc_db.h:

* subversion/svn/cl.h:

* subversion/svndumpfilter/main.c:

* subversion/svnlook/main.c:

* subversion/svn/propedit-cmd.c:

* subversion/svn/propget-cmd.c:

* subversion/svnserve/main.c:

* subversion/svn/status-cmd.c:

* subversion/svn/tree-conflicts.c:

* subversion/svn/util.c:

* subversion/tests/cmdline/commit_tests.py:

* subversion/tests/cmdline/copy_tests.py:

* subversion/tests/cmdline/info_tests.py:

* subversion/tests/cmdline/log_tests.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/prop_tests.py:

* subversion/tests/cmdline/revert_tests.py:

* subversion/tests/cmdline/stat_tests.py:

* subversion/tests/cmdline/svntest/actions.py:

* subversion/tests/cmdline/svntest/tree.py:

* subversion/tests/cmdline/switch_tests.py:

* subversion/tests/cmdline/tree_conflict_tests.py:

* subversion/tests/cmdline/update_tests.py:

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

* subversion/tests/libsvn_subr/checksum-test.c:

* subversion/tests/libsvn_subr/dirent_uri-test.c:

* subversion/tests/libsvn_subr/path-test.c:

* subversion/tests/libsvn_subr/target-test.c:

* subversion/tests/libsvn_wc/tree-conflict-data-test.c:

* tools/examples/svnlook.py: Delete trailing whitespace.

  1. … 112 more files in changeset.
* subversion/include/svn_cmdline.h

(svn_cmdline_setup_auth_baton): Further docstring tweakage following r33952.

Rename a new 1.6-era function for a few reasons:

- it's a little harder to tell the difference between "set_up" and

"setup" than between even "function" and "function2".

- but if we don't like the noun "setup" being used as a verb, let's

at least avoid the use of "up" as a verb modifier in English,

which is ... weird.

- besides, "set up" sounds like it initializes an existing auth

baton, which it doesn't. So let's go with "create" as a closer

binding with names of similar factory functions.

- i like mine sage green.

* subversion/include/svn_cmdline.h,

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): Was svn_cmdline_set_up_auth_baton().

(svn_cmdline_setup_auth_baton): Track renamed function.

* subversion/svn/main.c

(main): Track renamed function.

* subversion/svnsync/main.c

(main): Track renamed function.

  1. … 3 more files in changeset.
Fix code formatting in some headers.

* subversion/include/svn_cmdline.h:

* subversion/include/svn_compat.h:

* subversion/include/svn_ctype.h:

* subversion/include/svn_diff.h:

* subversion/include/svn_md5.h:

* subversion/include/svn_nls.h:

* subversion/include/svn_pools.h:

* subversion/include/svn_props.h:

* subversion/include/svn_quoprint.h:

* subversion/include/svn_sorts.h:

* subversion/include/svn_time.h:

* subversion/include/svn_types.h:

* subversion/include/svn_version.h:

* subversion/include/svn_xml.h: Place function types on separate lines.

  1. … 13 more files in changeset.
Document which function replaces deprecated functions.

* subversion/include/svn_client.h,

subversion/include/svn_cmdline.h: add doc string.

  1. … 1 more file in changeset.
Mark deprecated functions with SVN_DEPRECATED.

* subversion/include/svn_types.h

(SVN_DEPRECATED): Define.

* subversion/include/svn_auth.h:

* subversion/include/svn_base64.h:

* subversion/include/svn_client.h:

* subversion/include/svn_cmdline.h:

* subversion/include/svn_config.h:

* subversion/include/svn_delta.h:

* subversion/include/svn_diff.h:

* subversion/include/svn_dso.h:

* subversion/include/svn_error.h:

* subversion/include/svn_fs.h:

* subversion/include/svn_hash.h:

* subversion/include/svn_io.h:

* subversion/include/svn_opt.h:

* subversion/include/svn_ra.h:

* subversion/include/svn_ra_svn.h:

* subversion/include/svn_repos.h:

* subversion/include/svn_subst.h:

* subversion/include/svn_utf.h:

* subversion/include/svn_wc.h: Mark deprecated functions with SVN_DEPRECATED.

* www/hacking.html

  (deprecation): Update example.

Review by: blair

julianfoad

  1. … 20 more files in changeset.
Fix issue #3239 - Use absolute, not relative, paths of the cert files

as keys in the client cert passphrase cache.

Patch by: stylesen

* subversion/libsvn_subr/prompt.c

(svn_cmdline_auth_ssl_client_cert_prompt): Get the absolute path of cert

file and set it in the credentials.

* subversion/include/svn_cmdline.h

(svn_cmdline_auth_ssl_client_cert_prompt): Document that an absolute path

of SSL client certificate filename will be recorded.

* subversion/include/svn_auth.h

(svn_auth_cred_ssl_client_cert_t): In the documentation

s/Full paths/Absolute path/

  1. … 2 more files in changeset.
Purge AS400 port specific code.

The AS400 port is no longer maintained nor does anyone have plans to

maintain it. That's not so bad, but keeping the port code consistent with

changes made to trunk is becoming rather difficult, see

http://subversion.tigris.org/servlets/ReadMsg?listName=dev&msgNo=141147.

* subversion/include/svn_utf.h

* subversion/libsvn_client/add.c

* subversion/libsvn_ra_svn/streams.c

* subversion/libsvn_subr/cmdline.c

* subversion/libsvn_subr/io.c

* subversion/libsvn_subr/prompt.c

* subversion/libsvn_subr/utf.c

* subversion/svn/main.c

* subversion/svn/util.c

* subversion/svnlook/main.c

* subversion/tests/libsvn_ra_local/ra-local-test.c

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

Remove AS400 blocked code and related comments.

  1. … 12 more files in changeset.
Cache SSL client certificate passphrases, when user indicates it's okay.

This resolves issue #2489, and prompted issues #3238, #3239, and #3236.

Patch by: stylesen

(Tweaked by kfogel.)

* subversion/include/svn_config.h

(SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP,

SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT): New options,

for storing SSL client cert passphrase at all and for storing it

as plaintext, respectively.

(SVN_CONFIG_DEFAULT_OPTION_STORE_SSL_CLIENT_CERT_PP,

SVN_CONFIG_DEFAULT_OPTION_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT): New defaults.

* subversion/libsvn_subr/config_file.c

(ensure_auth_dirs): Create new auth dir to store ssl client cert passphrase.

(svn_config_ensure): Add doc for the new options in the servers file string.

* subversion/libsvn_ra/ra_loader.c

(svn_ra_open3): Load above new options from servers config file.

* subversion/libsvn_subr/cmdline.c

(get_auth_simple_provider): Rename to...

(get_auth_provider): ...this. Take a new argument provider_type

and use it to get the right provider. Document this function.

(svn_cmdline_setup_auth_baton): If we have gnome keyring support get the

corresponding ssl client cert passphrase provider.

* subversion/libsvn_subr/prompt.c

(plaintext_prompt_helper): New helper function, abstracts out the

logic for plaintext promting.

(svn_cmdline_auth_plaintext_prompt): Just wrap above new helper.

(svn_cmdline_auth_plaintext_passphrase_prompt): New function, also

using above new helper.

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c: Include

svn_auth_private.h and svn_private_config.h.

(AUTHN_PASSPHRASE_KEY): Define passphrase key.

(AUTHN_PASSTYPE_KEY): Define passtype key.

(ssl_client_cert_pw_file_provider_baton_t): New baton for ssl client cert

passphrase provider.

(simple_passphrase_get): New function to get plaintext passphrase.

(simple_passphrase_set): New function to store plaintext passphrase.

(svn_auth__ssl_client_cert_pw_file_first_creds_helper): New internal

API, abstracted out from...

(ssl_client_cert_pw_file_first_credentials): ...here, which just

wraps the above now.

(svn_auth__ssl_client_cert_pw_file_save_creds_helper): New internal

API, abstracted out from...

(ssl_client_cert_pw_file_save_credentials): ...here, which just

wraps the above now.

(ssl_client_cert_pw_file_provider): Register above to save the credentials.

(svn_auth_get_ssl_client_cert_pw_file_provider2): New public API which has

a prompt function now.

(svn_auth_get_ssl_client_cert_pw_file_provider): Update API for the above.

* subversion/include/private/svn_auth_private.h

(svn_auth__ssl_client_cert_pw_file_first_creds_helper): Declare new API.

(svn_auth__ssl_client_cert_pw_file_save_creds_helper): Declare new API.

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

(gnome_keyring_ssl_client_cert_pw_first_creds): New function to get ssl

client cert passphrase from encrypted credentials.

(gnome_keyring_ssl_client_cert_pw_save_creds): New function to save

encrypted ssl client cert passphrase.

(gnome_keyring_ssl_client_cert_pw_provider): New baton.

(svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider): New public API for

gnome keyring based ssl client cert passphrase storage and retrieval.

* subversion/include/svn_auth_dso.h

(svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider): New public API.

* subversion/include/svn_cmdline.h

(svn_cmdline_auth_plaintext_passphrase_prompt): New public API added to

prompt for storing plaintext passphrases.

* subversion/include/svn_auth.h

(svn_auth_ssl_client_cert_pw_provider_func_t): Define function type for the

provider.

(svn_auth_plaintext_passphrase_prompt_func_t): New function prototype.

(SVN_AUTH_PARAM_DONT_STORE_SSL_CLIENT_CERT_PP): New constant.

(SVN_AUTH_PARAM_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT): New constant.

(svn_auth_get_ssl_client_cert_pw_file_provider2): New public API.

* subversion/libsvn_ra_neon/session.c

(client_ssl_decrypt_cert): Call svn_auth_save_credentials to save

the ssl client certificate passphrase.

  1. … 11 more files in changeset.
Resolve issue #2597: Add --trust-server-cert option to svn and svnsync,

so that non-interactive operations can work with (e.g.) self-signed

certificates not backed by a known trust authority.

Set up some shared infrastructure:

* subversion/include/svn_cmdline.h

(svn_cmdline_setup_auth_baton): Deprecate, replace with...

(svn_cmdline_set_up_auth_baton): ...this, which takes a new boolean

parameter trust_server_cert.

* subversion/libsvn_subr/cmdline.c

(ssl_trust_unknown_server_cert): New function.

(svn_cmdline_setup_auth_baton): Just wrap below.

(svn_cmdline_set_up_auth_baton): New function, based on above. If

both non_interactive and the new parameter trust_server_cert are

true, then register ssl_trust_unknown_server_cert as a provider.

Add the new option to 'svn':

* subversion/svn/cl.h

(svn_cl__opt_state_t): New boolean trust_server_cert.

* subversion/svn/main.c

(svn_cl__options): Add new "trust-server-cert" option.

(svn_cl__longopt_t): New opt_trust_server_cert enum.

(svn_cl__global_options): Add opt_trust_server_cert to this list.

(main): Parse the new option, do the expect things with the result.

Add the new option to 'svnsync':

* subversion/svnsync/main.c

(svnsync_opt_trust_server_cert): New opt enum.

(SVNSYNC_OPTS_DEFAULT, svnsync_options): List the new option.

(struct opt_baton_t): New field trust_server_cert.

(main): Parse the new option, do the expect things with the result.

Update the expected help output for the tests:

* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout:

Adjust for above.

  1. … 5 more files in changeset.
Merge the dont-save-plaintext-passwords-by-default branch into trunk.

Summary of the functionality implemented:

- Add a 'store-plaintext-passwords' option, which can be set to

'yes', 'no', or 'ask' (which is the default). If the option

is set to 'ask', ask the user before saving plaintext passwords

to disk. This is done from a callback that should be implemented

by all clients. The callback is called once per authentication realm.

If a client does not implement the callback, and does not provide

an explicit default value, we default to storing plaintext passwords.

I don't like this, but it's a compromise because we don't really want

the semantics of the old API to change retroactively.

We can, however, change this default anytime by tweaking a single

line of code, should we decide to do so. The old API has been deprecated.

- Provide an implementation of the callback for our command line

client, which, in addition to prompting, prints a warning explaining

that the password can only be stored unencrypted, and shows the name

of the authentication realm in question.

- Authentication parameter configuration has been moved to the

RA layer completely. For users, this means that parameters

which used to be configured in the [auth] section in the 'config'

file are now configured in the 'servers' file, and can be specified

both in the [global] section, and per server group. The [auth]

section in 'config' is still being evaluated, but is overridden

by anything specified in 'servers'.

Please consult the log messages of the branch for a detailed list

of all changes.

  1. … 13 more files in changeset.
Set output buffering mode early during command-line initialization processing.

* subversion/include/svn_cmdline.h

(svn_cmdline_init): Indicate that stdout and ERROR_STREAM will have

their buffering mode changed to line-based and unbuffered

(character-based, really), respectively.

* subversion/libsvn_subr/cmdline.c

Bump copyright date. Include stdio.h.

(svn_cmdline_init): Call setvbuf() on stdout and ERROR_STREAM (which

is typically stderr).

Suggested by: epg

jrepenning

Reviewed by: epg

sussman

  1. … 1 more file in changeset.
Allow CTRL-C to work during interactive conflict resolution

prompt.

* subversion/include/svn_cmdline.h

(svn_cmdline_prompt_user2): Rev API to take a

svn_cmdline_prompt_baton_t.

* subversion/libsvn_subr/prompt.c

(svn_cmdline_prompt_user2): New version of API, passing the baton

through to prompt().

(svn_cmdline_prompt_user): Deprecate.

* subversion/svn/conflict-callbacks.c

(svn_cl__interactive_conflict_handler): Treat baton as a

svn_cmdline_prompt_baton_t and pass it through to

svn_cmdline_prompt_user2.

* subversion/svn/main.c

(main): If using the interactive conflict handler, set up a

cancellation baton for it.

  1. … 3 more files in changeset.
Channeling Erik Hülsmann, remove all trailing whitespace within our source

tree:

for extsn in c h cpp java py pl rb; do

sed -i -e 's/[ \t]*$//' `find . -name "*.$extsn" | xargs grep '[ \t]$' -l`

done

Inspired by: ehu

  1. … 449 more files in changeset.
1.4.x API: Fix svn_cmdline__getopt_init() to obey pool parameter

convention.

* subversion/include/svn_cmdline.h (svn_cmdline__getopt_init),

* subversion/libsvn_subr/cmdline.c (svn_cmdline__getopt_init):

Re-order parameters.

* subversion/svn/main.c (main),

* subversion/svnadmin/main.c (main),

* subversion/svndumpfilter/main.c (main),

* subversion/svnlook/main.c (main),

* subversion/svnserve/main.c (main),

* subversion/svnsync/main.c (main),

* subversion/svnversion/main.c (main),

* subversion/tests/svn_test_main.c (main):

Adjust calls.

  1. … 9 more files in changeset.
API: Use named, not anonymous, structs and enums in new-in-1.4 cases, for

consistency with the majority of existing cases.

* subversion/include/svn_io.h (svn_io_file_del_t)

* subversion/include/svn_cmdline.h (svn_cmdline_prompt_baton_t)

  1. … 1 more file in changeset.
Add missing '@since New in 1.4.' notations found in 1.3->1.4 API review.

* subversion/include/svn_cmdline.h

* subversion/include/svn_io.h

* subversion/include/svn_ra.h

  1. … 2 more files in changeset.
Make doc-comments consistent with function declarations by correcting

references to function arguments that don't exist.

[in subversion/include/]

* svn_diff.h, svn_fs.h, svn_repos.h, svn_delta.h, svn_props.h,

svn_config.h, svn_string.h, svn_cmdline.h, svn_ra.h, svn_opt.h

Correct simple typos in references to argument names.

Additionally:

* svn_fs.h

(svn_fs_txn_proplist): Don't refer to non-existent argument 'fs'.

* svn_delta.h

(svn_txdelta_md5_digest): Don't mark 'md5' as an argument.

(svn_txdelta_skip_svndiff_window): Correct doc-comment to remove reference

to non-existent 'window' argument.

* svn_path.h

(svn_path_condense_targets): Use <tt>...</tt> to indicate a type, not @a.

* svn_subst.h

(svn_subst_detranslate_string): Rename argument 'for_stdout' in

function declaration to 'for_output', matching doc-comments and

function definition.

* svn_xml.h

(svn_xml_parse): Rename argument 'parser' in function declaration to

'svn_parser', matching doc-comments and function definition.

* svn_config.h

(svn_config_enumerate_sections2): Remove duplicate reference to the

callback's 'name' field.

* svn_string.h

(svn_stringbuf_chop): Rename argument 'bytes' in function declaration to

'nbytes', matching doc-comments and function definition.

* svn_io.h

(svn_io_run_diff3_2): Move a misplaced @c modifier.

(svn_io_run_diff3): Don't mark another function name as an argument.

* svn_wc.h

(svn_wc_match_ignore_list): Use lowercase names for arguments.

* svn_client.h

(svn_client_merge2, svn_client_revert): Don't mark 'true' as an argument.

(svn_client_proplist2): Consistently mark 'item' as an argument.

* svn_pools.h

(svn_pool_create): Rename argument 'pool' in macro definition to

'parent_pool', matching doc-comment and called function.

  1. … 16 more files in changeset.
OS400/EBCDIC Port: Convert command-line arguments from EBCDIC to UTF-8.

This is one of several patches to allow Subversion to run on IBM's

OS400 V5R4. Despite IBM's building of APR/Apache with UTF support in

V5R4, command line arguments to main() are still encoded in EBCDIC.

To avoid const restrictions and allow EBCDIC to UTF-8 conversion of

command line arguments in place, the signature of main() in all command

line programs is standardized to main(int argc, const char *argv[]).

Approved by: Julian Foad <julianfoad@btopenworld.com>

Suggestions by: Julian, Philip Martin <philip@codematters.co.uk>, and

Brane <brane@xbc.nu>

* subversion/include/svn_cmdline.h

Include apr_getopt.h

(svn_cmdline__getopt_init): New function declaration.

* subversion/libsvn_subr/cmdline.c

(SVN_UTF_ETOU_XLATE_HANDLE): New xlate key for EBCDIC (CCSID 0) to

UTF-8 (CCSID 1208) conversions.

(svn_cmdline__getopt_init): New function definition.

* subversion/svn/main.c

* subversion/svnadmin/main.c

* subversion/svndumpfilter/main.c

* subversion/svnlook/main.c

* subversion/svnserve/main.c

* subversion/svnsync/main.c

* subversion/svnversion/main.c

(main): Standardize signature and replace call to apr_getopt_init()

with new wrapper function svn_cmdline__getopt_init().

  1. … 8 more files in changeset.