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

Changeset 874309 is being indexed.

Fix failure to raise a distinct tree-conflict that is a sibling of another

tree-conflict raised in the same run: Do not defer tree-conflicts via the log

but record them immediately.

* subversion/libsvn_wc/update_editor.c

(check_tree_conflict): Rename to check_and_store_tree_conflict().


Renamed from check_tree_conflict(), because this function now stores

a tree-conflict in the working copy immediately. Remove the LOG_ACCUM

argument. Cosmetic change: initialize the return value further up.

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

Apply rename and functional change from check_tree_conflict() to


* subversion/tests/cmdline/


Fix some dumb mis-expectations that still remain after above fixes

are applied.



Change output expectation line arrays to UnorderedOutput.


Do not XFail tests tree_conflicts_resolved_depth_* since the bug is

now fixed and make_depth_tree_conflicts() now works.

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


Add a test for the bug fixed in r34233.

Parsing strings in C - Great Fun since 1972!

Fix a segfault reported by Jens Seidel in:

Date: Sun, 16 Nov 2008 17:53:20 +0100

From: Jens Seidel <>


Message-ID: <>

Subject: Re: Segfault during "svn info"

* subversion/libsvn_subr/dirent_uri.c

(svn_uri_is_canonical): Do not blindly assume that supplied

uri's hostname part contains a slash. We were running over

the terminating null if it didn't.

Also, put a block of windows-specific code which assumes

that a character pointer points to a slash into an if

statement which checks for this.

Fix out-of-bounds-read issue.

Suggested by: philip

* subversion/libsvn_subr/dirent_uri.c

(canonicalize): check bounds before reading from target


Follow-up to r34222:

Use apr_pool_cleanup_register() to register kwallet_terminate() to be called

when the pool is destroyed.

* subversion/libsvn_auth_kwallet/kwallet.cpp

(kwallet_terminate): Update.

(kwallet_password_get, kwallet_password_set): Call


(kwallet_simple_provider, kwallet_ssl_client_cert_pw_provider): Update.

Suggested by: rhuijben

* subversion/include/svn_dirent_uri.h

(svn_dirent_is_absolute, svn_dirent_is_root): Use examples in canonical

format for function documentation. (Remove \\?\ examples as these are not

generic supported)

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_is_root): Minor comment update

Revert r34223 and r34221.

Suggested by: rhuijben

French translation update for r34227.

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

Store configuration in 'parameters' of authentication baton when using

svn:// protocol.

* subversion/libsvn_ra_svn/client.c

(ra_svn_open): Store configuration in 'parameters' of authentication baton.

Don't try to open wallet if opening of wallet previously failed.

* subversion/libsvn_auth_kwallet/kwallet.cpp

(get_wallet): Don't try to open wallet if 'parameters' of authentication

baton contain "kwallet-opening-failed". Store "kwallet-opening-failed" in

'parameters' of authentication baton if opening of wallet failed.

Extended svn:ignore properties.

* subversion/bindings/swig/python/libsvn_swig_py/


(svn:ignore): Added *.lo, *.la (obvious fix)

* www/tools_contrib.html: Add Chinese translation links.

* www/tools_contrib.zh.html: Chinese translation based on English r33959

Follow-up to r34221:

* subversion/svnsync/main.c

(main): Add 2 missing calls to svn_cmdline_terminate_auth_baton().

Properly terminate KWallet authentication providers.

* subversion/libsvn_auth_kwallet/kwallet.cpp

(kwallet_password_get, kwallet_password_set): Set "kwallet-initialized" in

'parameters' of authentication baton after opening wallet.

Delete some comments.

(kwallet_terminate): New function which disconnects Subversion from KWallet

and deletes pointer to wallet.

(kwallet_simple_provider, kwallet_ssl_client_cert_pw_provider): Initialize

terminate_provider() field with kwallet_terminate().

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().

To complete issue #2489, implement secure client certificate passphrase

caching for Windows CryptoAPI.

* subversion/include/private/svn_auth_private.h

(svn_auth__ssl_client_cert_pw_file_save_creds_helper): Update documentation

to note that it is used by the windows cryptoapi store.

(svn_auth__ssl_client_cert_pw_get): Add passphrase getter for use by the

Windows crypto provider.

(svn_auth__ssl_client_cert_pw_set): Add passphrase setter for use by the

Windows crypto provider.

* subversion/include/svn_auth.h

(svn_auth_get_windows_ssl_client_cert_pw_provider): Add Windows Crypto api

ssl client certificate passphrase provider.

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_provider): Handle requests for windows


* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): Register Windows Crypto api ssl client

certificate passphrase provider in the auth batton.

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c

(simple_passphrase_get): Renamed to ...

(svn_auth__ssl_client_cert_pw_get): .... and remove static to allow reuse

by the Windows Crypto api implementation.

(simple_passphrase_set): Renamed to ...

svn_auth__ssl_client_cert_pw_set): ... and remove static to allow reuse

by the Windows Crypto api implementation.

(svn_auth__ssl_client_cert_pw_file_save_creds_helper): Mark that passphrases

saved by the Windows Crypto api are encrypted to remove the confirmation



ssl_client_cert_pw_file_save_credentials): Update references to


* subversion/libsvn_subr/win32_crypto.c





windows_ssl_client_cert_pw_provider): Add ssl client certificate passphrase

provider, forwarding caching and save requests to the file provider like

the simple provider.

(svn_auth_get_windows_ssl_client_cert_pw_provider): Add registration function

for the Windows Crypto api ssl client certificate passphrase provider.

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

(test_platform_specific_auth_providers): Test registration of the CryptoApi

provider via svn_auth_get_platform_specific_provider.

Follow-up to r34130:

Store pointer to wallet in parameters of authentication baton instead of using

global variable.

* subversion/libsvn_auth_kwallet/kwallet.cpp

(wallet): Delete.

(get_wallet): New.

(kwallet_password_get, kwallet_password_set): Use get_wallet().

Found by: gstein

Follow-up to r34085:

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_provider): Rename local constant.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): Consistently use SVN_ERR() and improve


* subversion/bindings/javahl/native/SVNClient.cpp

(SVNClient::getContext): Consistently use SVN_JNI_ERR() and improve


* subversion/tests/libsvn_subr/auth-test.c: Fix copyright year.

* www/index.html: Add Chinese FAQ translation links.

* www/faq.html: Add Chinese translation links.

* www/faq.zh.html: Chinese translation based on English r33959

Add missing NULL checks.

* subversion/libsvn_fs_fs/tree.c

(fs_file_checksum, apply_textdelta): Add missing NULL check.

Reviewed by: markphip



[Reverted in r34252.]

Follow up on r34178, getting rid of compiler warnings.

* subversion/include/svn_string.h,

* subversion/libsvn_subr/svn_string.c

(svn_cstring_join): Make first parameter STRINGS const.

* subversion/libsvn_fs_fs/tree.c


Fix excessive memory usage during commit in repositories with high

commit rates where the transactions modify nodes that have 20,000

siblings nodes.

* subversion/libsvn_wc/update_editor.c

(check_wc_root): Add a minimal doc string. Separate it from the large

documentation comment above it.

* subversion/include/svn_wc.h

(svn_wc_is_wc_root): Clarify the doc string: "WC root" might not mean what

you would think.

The new composition is cool... but let's have the stream closure take

precedence over the file removal error. It was the closure, after all,

that caused us to attempt the file removal.

* subversion/libsvn_subr/subst.c:

(svn_subst_copy_and_translate3): swap order of error precedence

If update or switch skips a conflicted tree, don't set the new

revision, URL, etc. on anything in the conflicted tree.

On updating or switching a prop-conflicted directory, skip the

directory and its descendants as we do for tree conflicts.

This is a follow-up to the skip-conflicts improvements in r34158.

* subversion/libsvn_wc/adm_ops.c

(tweak_entries): When finishing an update or switch, skip all

descendants of an excluded path.

* subversion/libsvn_wc/update_editor.c

(edit_baton): Note in comments the new (recursive) meaning of the

skipped_paths field. Rename current_tree_conflict to

current_conflict to reflect that it may contain the path of a

prop-conflicted dir.







make_editor): Track field renames.

(open_directory): Track field renames. Ensure that an existing

property conflict causes the dir tree to be skipped.

* subversion/tests/cmdline/


tree_conflicts_on_switch_3): Expected status shows old revision

numbers. Now consistent with the other tests.

* subversion/tests/cmdline/


update_conflicted): Expected output and status show improved

skipping and old revision numbers.



tree_conflicts_on_update_3): Expected status shows old revision

numbers. Now consistent with the other tests.

* subversion/tests/cmdline/svntest/

(deep_trees_skipping_on_update): Check status before the skipping,

too. Comment out a print statement (whoops).

Followup to r34205.

* subversion/libsvn_subr/error.c

(svn_error_compose_create): Simplify, simplify...

Suggested by: gstein

Followup to r34206.

* subversion/libsvn_subr/subst.c

(svn_subst_copy_and_translate3): Just return the composed error

chain as soon as you know it's non-NULL, rather than testing it

again later.

Suggested by: gstein

Simplify some cleanup logic.

* subversion/libsvn_subr/subst.c

(svn_subst_copy_and_translate3): Use new svn_error_compose_create()

to simply some logic.