rooneg in subversion

Use an iteration pool when looking up entry kinds in base_dir_entries.

* subversion/libsvn_fs_base/tree.c

(base_dir_entries): Use an iteration pool instead of putting everything

in our main pool, since nothing we allocate in that loop needs to live any

longer than the loop body. Also fix a typo while I'm here.

If a test exits due to a signal, then show the signal number. If the

test exits with a non-0 value, show the value. This only has effect

in verbose mode and on platforms that return status values.

Patch by: Dan Christian <>

* subversion/tests/cmdline/svntest/

(spawn_process): Fix exit code handling and add messages.

Inch closer to making mod_dontdothat return useful errors with all httpd

versions. This gets us a useful error code, but doesn't include any kind

of useful error message.

* contrib/server-side/mod_dontdothat/mod_dontdothat.c

Include http_protocol.h.

(dontdothat_filter): Pass back a new brigade that contains only an error

bucket and eos. Add comments about potential future work.

Convert old svn_hash_read calls in fs_fs.c to new svn_hash_read2. This

ends up saving 4 file system calls per transaction. Much of the change

is concerned with handling the semantic difference betweent he two, where

svn_hash_read silently handles empty files and svn_hash_read2 does not.

This case is avoided by simply not creating the empty files in the first


Patch by: Dan Christian <>

* subversion/libsvn_fs_fs/fs_fs.c

(svn_fs_fs__revision_proplist): Switch to svn_hash_read2, and fix a minor

memory leak that happened if we retried on ESTALE.

(get_txn_proplist, get_txn_mergeinfo): Open without APR_CREATE and switch

to svn_hash_read2.

(svn_fs_fs__change_txn_prop, svn_fs_fs__change_txn_mergeinfo): Handle

file not existing yet.

* STATUS: Nominate r23815 for backport.

Update DB_CONFIG file to point to new location of BDB docs.

* subversion/libsvn_fs_base/fs.c

(bdb_write_config): Refer to BDB docs at, since the old urls

no longer work.

* COMMITTERS: Update email address.

Add some more comments to the new svn_ra_svn__stream_t interfaces.

Suggested by: malcolm

* subversion/libsvn_ra_svn/ra_svn.h

(ra_svn_pending_fn_t, ra_svn_timeout_fn_t,

svn_ra_svn__stream_t, svn_ra_svn__stream_create,

svn_ra_svn__stream_write, svn_ra_svn__stream_read): Add doc comments.

* subversion/libsvn_ra_svn/streams.c

(pending): Add documentation comment.

(file_read_cb, file_write_cb, file_timeout_cb, file_pending_cb,

sock_read_cb, sock_write_cb, sock_timeout_cb, sock_pending_cb): Note what

interfaces these implement. Also add comments around the set of functions

for creating file and socket backed streams describing what they do.

Follow up to r22238.

* subversion/libsvn_ra_svn/marshal.c

(svn_ra_svn_create_conn): Wrap initialization of conn->sock in #ifdefs,

since it's only there if we have SASL support.

Encapsulate ra_svn's I/O with a stream-based wrapper. This will

facilitate the introduction of SASL and TLS encryption.

Patch by: Vlad Georgescu <>

* subversion/libsvn_ra_svn/marshal.c:

Update the copyright date.

(svn_ra_svn_create_conn): Create the connection stream. Don't initialize

in_file and out_file.

(svn_ra_svn__set_block_handler, svn_ra_svn__input_waiting,

writebuf_output, readbuf_input): Use the new svn_ra_svn__stream_t interface

instead of the old apr_file_t/apr_socket_t code.

* subversion/libsvn_ra_svn/ra_svn.h



svn_ra_svn__stream_t): New typedefs.

(svn_ra_svn_conn_st): Add stream. Remove in_file, out_file and proc. Explain

that direct access to sock is still required by SASL.







svn_ra_svn__stream_pending): New function declarations.

* subversion/libsvn_ra_svn/streams.c: New file. Implements the

svn_ra_svn__stream_t interface for socket and file streams.

    • ?
Fix number 16 over DAV by correcting the editor drive used

in the propset to URL code.

* subversion/libsvn_client/prop_commands.c

(do_url_propset): Close the file and directory batons before returning,

don't bother opening an extra directory baton for the directory case,

the root baton works just fine and is already open to the right place.

Fix a memory access problem with svnsync over ra_svn when SASL is enabled.

Patch by: Vlad Georgescu <>

* subversion/svnserve/sasl_auth.c

(sasl_auth_request): Allocate b->user in b->pool rather than pool.

* STATUS: Nominate r22140 for backport and vote for it.

Fix issue #2613, svnsync does not mirror empty revisions exactly.

The problem was that if the source revision has no svn:author revprop

we would end up leaving the svn:author revprop from our initial commit.

The solution is to keep track of the revprops that were already there,

removing them from a hash as we copy the ones from the source. If any

are left once we're done, those need to be removed.

* subversion/svnsync/main.c

(copy_revprops): Add a new sync parameter, which makes us remove

revprops in the destination revision that don't exist in the source


(do_initialize): Pass FALSE as the sync argument of copy_revprops.

(do_synchronize): Pass TRUE as the sync argument of copy_revprops.

(do_copy_revprops): Pass FALSE as the sync argument of copy_revprops.

* subversion/tests/cmdline/

(no_author): New test.

(test_list): Add new test.

* subversion/tests/cmdline/svnsync_tests_data/no-author.dump: New test data.

Add a link to Tobias Wassermann's new book.

Patch by: T. Wassermann <>

* www/links.html

(Books): Add new link.

If a SASL mechanism fails sufficiently early (i.e. before the client

sends the initial response), don't automatically fail the authentication.

Instead, fall back to the next best mechanism sent by the server.

Patch by: Vlad Georgescu <>

* subversion/libsvn_ra_svn/sasl_auth.c

(try_auth): If sasl_client_start() fails with a non-fatal error message,

delete the current mechanism from the list and try again.

* STATUS: Propose r22092 for backport.

Fix a problem with syncing copies of paths that contain non-url-safe

characters. We needed to uri encode the copyfrom paths before we use


Found by: Mikhail Terekhov <>

* subversion/svnsync/main.c

(add_directory, add_file): URI encode copyfrom_path before using it.

* subversion/tests/cmdline/

(url_encoding): New test.

(test_list): Run new test.

* subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump: New data

file for tests.

Convert a helper function into a helper macro to avoid obscuring the source

of error messages.

* subversion/libsvn_fs_fs/tree.c

(not_found): Remove, replacing with...

(NOT_FOUND): This new macro version.

(open_path, fs_node_history): Use macro version.

* STATUS: Vote for r22060.

* STATUS: Propose and vote for r22051.

Notify properly on property-only revert. Fixes a bug introduced

by the fix for issue #2517 (r18842).

Patch by: Ed Price <>

* subversion/libsvn_wc/adm_ops.c

(revert_admin_things): Set '*reverted' when reinstalling


* subversion/tests/cmdline/

(revert_propset__dir): New test.

(revert_propset__file): New test.

(revert_propdel__dir): New test.

(revert_propdel__file): New test.

(test_list): Add new tests.

* STATUS: Vote for r21384, r21047 and r19698.

* STATUS: Add r22026 to r21738 and r21924, and add my vote. Malcolm

already indicated his approval before he left to go to the airport.

Merge r22026 into the 1.4.x-r21738 branch.

Fix typo from r22006 so we correctly use windows crypto on non-MinGW builds.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_setup_auth_baton): Actually ifdef correctly for MinGW.

Disable the windows specific auth provider when building under MinGW

since it doesn't currently compile due to defficiencies in the MinGW


Submitted by: Paul Querna <>

Tweaked by: me

* subversion/include/svn_client.h

(svn_client_get_windows_simple_provider): Don't declare on MinGW.

* subversion/include/svn_auth.h

(svn_auth_get_windows_simple_provider): Ditto.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_setup_auth_baton): Only add the windows simple provider

when we aren't built with MinGW.

* subversion/libsvn_client/compat_providers.c

(svn_client_get_windows_simple_provider): Don't define if we're built

on MinGW.

* subversion/libsvn_subr/simple_providers.c

(description, windows_crypto_type, get_crypto_function,

windows_password_encrypter, windows_password_decrypter,

windows_simple_first_creds, windows_simple_save_creds,

windows_simple_provider, svn_auth_get_simple_provider): Don't define

if we're built on MinGW.

Merge r19698, r21384, and r21047 into the backport branch.

    • ?
    • ?
* STATUS: Add r19698 to the r21384 and r21047 block, and note the backport


Create a backport branch for the r21047 and r21384 backport.