Checkout Tools
  • last updated 48 mins ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 868095 is being indexed.

Fix a test editor in tests/libsvn_repos to properly handle change_dir_prop.

This requires introducing directory batons instead of just reusing the

edit baton.

* subversion/tests/libsvn_repos/dir-delta-editor.c

(edit_baton): Remove comment saying it's used for directory batons.

(dir_baton): New.

(test_delete_entry, test_open_root, test_open_directory,

test_add_directory, test_open_file, test_add_file): Adjust to use

dir_baton struct.

(test_change_dir_prop): Adjust to use dir_baton struct; don't use

the property name (!) as the pathname.

  1. … 1 more file in changeset.
* subversion/libsvn_repos/repos-test.c

(nls_receiver): Fix a test check which flatly fails to detect the

condition it is intended to.

Housekeeping: In the spirit of r26317, remove trailing whitespace in our


(This touches files in various and sundry parts of the tree, which I shan't

enumerate here.)

  1. … 93 more files in changeset.
Add peg revision parameter to new svn_repos_node_location_segments() API.

(This is the first of multiple commits whereby I have the pleasure of

propogating this addition back through the corresponding RA APIs,

fallback code, etc. Yay!)

* subversion/include/svn_repos.h

(svn_repos_node_location_segments): Add a peg revision parameter.

* subversion/libsvn_repos/rev_hunt.c

(maybe_crop_and_send_segment): New helper.

(svn_repos_node_location_segments): Add and use a peg revision parameter.

* subversion/svnserve/serve.c,

* subversion/libsvn_ra_local/ra_plugin.c,

* subversion/mod_dav_svn/reports/get-location-segments.c

Callers of svn_repos_node_location_segments() updated to pass peg

revision (same as start revision for these invocations at the moment).

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

(check_location_segments): Add peg revision and end revision parameters.

(node_location_segments): Add some tests that flex the new peg

revision parameter.

  1. … 5 more files in changeset.
Improve the C tests for svn_repos_node_location_segments().

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

(nls_receiver, check_location_segments): Check the segment's

range_end member as the end-of-list sentry, not the range_start


(node_location_segments): Add a test to cover the segments of the

root directory.

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

(node_location_segments): Expand this test, still with success.

Fix an overlap in the test data I accidentally introduced.

* subersion/tests/libsvn_repos/repos-test.c

(node_location_segments): Use a unique repository name.

Complete first draft of svn_repos_node_location_segments() API.

* subversion/libsvn_repos/rev_hunt.c

(nls_history_func): New helper.

(svn_repos_node_location_segments): Finish, I think, this function!

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

(test_funcs): No longer expect node_location_segments() to fail.

  1. … 1 more file in changeset.
* subversion/tests/libsvn_repos/repos-test.c

(node_location_segments): Fix a bug in the test, and expand the test

to cover another line of history.

Begin work on new API svn_repos_node_location_segments(), for issue

#2953 (Merge tracking information and operations not normalizing merge

sources to real repository locations).

* subversion/include/svn_types.h

(svn_location_segment_t): New structure.

(svn_location_segment_receiver_t): New callback type.

* subversion/include/svn_repos.h,

* subversion/libsvn_repos/rev_hunt.c

(svn_repos_node_location_segments): New function (not fully implemented).

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

(struct nls_receiver_baton): New structure.

(format_segment, nls_receiver, check_location_segments): New helpers.

(node_location_segments): New test.

(test_funcs): Add XFAIL reference to new node_location_segments test.

  1. … 3 more files in changeset.
Send copyfrom-args on updates *only* if the client explicitly requests them.

This keeps the 1.5 servers backward-compatible. Because incoming

copyfrom args cause old clients to error, they should only be

requested by new clients that understand them. This means adding a

new boolean 'send_copyfrom_args' to the main libsvn_repos

editor-driver, svn_ra_do_update2(), and all four RA implementations.


* subversion/include/svn_repos.h

(svn_repos_begin_report2): new 'send_copyfrom_args' argument.

* subversion/libsvn_repos/reporter.c

(report_baton_t): add new boolean to reporter baton.

(svn_repos_begin_report2): take new boolean arg, put in baton.

(add_file_smartly): only try to discover copyfrom args if the

new boolean is set (i.e. been requested by caller).

* subversion/include/svn_ra.h

(svn_ra_do_update2): new 'send_copyfrom_args' argument.

* subversion/libsvn_ra/ra_loader.h

(svn_ra__vtable_t): update declaration.

* subversion/libsvn_ra/ra_loader.c

(svn_ra_do_update2): update declaration and switching func.

(svn_ra_do_update): pass FALSE to old version of function.

* subversion/libsvn_ra/wrapper_template.h

(compat_do_update): pass FALSE to compat wrapper.

* subversion/libsvn_client/update.c

(svn_client__update_internal): pass new arg value of TRUE to


* subversion/libsvn_client/export.c

(svn_client_export4): always pass new arg value of FALSE to


* subversion/libsvn_ra_local/ra_plugin.c

(make_reporter): take new argument, pass it to svn_repos_begin_report2.

(svn_ra_local__do_update): take new arg, pass to make_reporter.

(svn_ra_local__do_switch): pass FALSE for new arg. For now.


svn_ra_local_do_diff): pass FALSE for new arg.

* subversion/libsvn_ra_neon/fetch.c

(report_baton_t): add new boolean to reporter baton.

(svn_ra_neon__do_update): take new arg, pass to make_reporter.

(svn_ra_neon__do_switch): pass FALSE for new arg. For now.


svn_ra_neon_do_diff): pass FALSE for new arg.

(make_reporter): take new arg, put in reporter baton. Send new

"<S:send-copyfrom-args>" element in report request.

* subversion/libsvn_ra_neon/ra_neon.h

(svn_ra_neon__do_update): update declaration.

* subversion/mod_dav_svn/reports/update.c

(dav_svn__update_report): look for new report element, pass the new

arg into svn_repos_begin_report2.

* subversion/libsvn_ra_svn/client.c

(ra_svn_update): transmit new arg as boolean in update-request tuple.

* subversion/svnserve/serve.c

(accept_report): take new boolean, pass to svn_repos_begin_report2.

(update): possibly parse new optional boolean in update-request tuple,

pass to accept_report.

(switch): pass FALSE to new accept_report arg. For now.

(status, diff): pass FALSE to new accept_report arg.

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

(rmlocks): pass FALSE to new svn_repos_begin_report2 arg.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serdf__do_update): take new arg.

* subversion/libsvn_ra_serf/update.c

(report_context_t): add new boolean to reporter baton.

(make_update_reporter): take new boolean arg, put in reporter baton.

Send new "<S:send-copyfrom-args>" element.

(svn_ra_serf__do_update): take new arg, pass to make_update_reporter.

(svn_ra_serf__do_switch): pass FALSE for new arg. For now.


svn_ra_serf__do_status): pass FALSE for new arg.

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


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

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


Inspired by: ehu

  1. … 448 more files in changeset.
Follow-up to r26222.

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

(rmlocks): Update call to svn_repos_begin_report2.

Followup to r24861: replace a docstring with a brief comment.

* subversion/libsvn_repos/repos.c

* subversion/libsvn_subr/config_file.c

* subversion/tests/libsvn_diff/diff-diff3-test.c

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

(NL) Replace docstring with a brief comment.

Patch by: Peter Samuelson <>

  1. … 3 more files in changeset.
Change of convention for multiline string literal. No semantics changes.

Patch by: Jonathan Gilbert <>

Tweaked by: me

* subversion/libsvn_repos/repos.c

* subversion/libsvn_subr/config_file.c

* subversion/tests/libsvn_diff/diff-diff3-test.c

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

(NL) Introduce shorter version of APR_EOL_STR.

() Replace APR_EOL_STR with NL macro in string literals. Move it to line with

text and align NL macro to end on the 79th column.

  1. … 3 more files in changeset.
* subversion/tests/libsvn_repos/repos-test.c

Code formatting changes only -- no logic changes.

Merge the sparse-directories branch to trunk.

See notes/sparse-directories.txt for work remaining. Special thanks

to dlr, lundblad, and malcolm for their help in getting the branch to


  1. … 70 more files in changeset.
Fix a bug in the authz code, related to issue #2388: if the authz global access

check is inconclusive (ie. no decision could be made), access should be denied,

not authorized.

Patch by: Joe Schaefer <>

* subversion/libsvn_repos/authz.c

(authz_global_parse_section): Continue walking the authz config as long as

the access is not determined.

(authz_get_global_access): Return FALSE if the access could not be

conclusively determined.

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

(authz): Add a section to the test configuration that triggers the bug. Fix

the test loop to actually run all unit tests.

  1. … 1 more file in changeset.
Replace calls to apr_array_push() with invocations of the APR_ARRAY_PUSH macro.

Followup to r22958.

* subversion/libsvn_fs_base/reps-strings.c

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

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

* subversion/libsvn_fs_base/revs-txns.c

* subversion/libsvn_fs_base/util/fs_skels.c

* subversion/libsvn_subr/error.c

* subversion/libsvn_subr/svn_string.c

* subversion/libsvn_subr/auth.c

* subversion/libsvn_subr/opt.c

* subversion/libsvn_subr/target.c

* subversion/libsvn_subr/path.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_client/prop_commands.c

* subversion/libsvn_client/locking_commands.c

* subversion/libsvn_client/blame.c

* subversion/libsvn_client/changelist.c

* subversion/libsvn_client/log.c

* subversion/libsvn_client/commit.c

* subversion/mod_dav_svn/reports/log.c

* subversion/mod_dav_svn/reports/update.c

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

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

* subversion/libsvn_repos/log.c

* subversion/libsvn_repos/rev_hunt.c

* subversion/svn/checkout-cmd.c

* subversion/svn/status-cmd.c

* subversion/libsvn_ra_dav/commit.c

* subversion/libsvn_ra_dav/fetch.c

* subversion/svnserve/serve.c

Use the APR_ARRAY_PUSH macro where appropriate.

  1. … 28 more files in changeset.
In the spirit of r22918, use the APR_ARRAY_IDX macro to index into arrays,

instead of referencing the elements of the array directly.

* subversion/libsvn_fs_base/reps-strings.c

* subversion/libsvn_fs_base/util/fs_skels.c

* subversion/libsvn_subr/error.c

* subversion/libsvn_subr/svn_string.c

* subversion/libsvn_subr/opt.c

* subversion/libsvn_subr/target.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_client/locking_commands.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/log.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_ra_serf/log.c

* subversion/mod_dav_svn/reports/update.c

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

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

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_ra_dav/log.c

* subversion/libsvn_ra_dav/fetch.c

* subversion/libsvn_ra_dav/replay.c

* subversion/svnserve/serve.c

Use APR_ARRAY_IDX where appropriate.

  1. … 20 more files in changeset.
* subversion/tests/libsvn_repos/repos-test.c (commit_editor_authz): Tweak

pool usage to avoid a core dump with pool debugging and --enable-dso.

See and its thread.

Patch by: Malcolm Rowe <>

Remove a "repos" test introduced in r21407 that didn't actually

involve the repos layer, and replace it with an extra line in a

pre-existing "fs" test. This test is XFAIL, but passes under BDB.

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

(created_rev_root): Removed.

(test_funcs): Removed created_rev_root.

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

(test_node_created_rev): Confirm that a newly-created txn root has

the same node_created_revs as the rev root it came from.

(test_funcs): Make test_node_created_rev an XFAIL.

  1. … 1 more file in changeset.
Simplify test for Issue #2608, which doesn't actually

require any revisions in the repository.

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

(created_rev_root): Don't bother making any revisions.

Follow up to r21407: a test that fails in some situations should

be marked as XFail!

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

(test_funcs): mark created_rev_root as XFailing for now.

New lower-level test for Issue #2608. Passes with bdb, fails with

fsfs. (There's no way to do a conditional XFAIL for C tests


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

(created_rev_root): New test for issue #2608.

(test_funcs): Add new test.

Finish issue #2600 -- svn diff follows history incorrectly on file in

renamed directory.

The problem was a bug in the svn_fs_closest_copy() implementations.

Fortunately, there are now C tests for both the FS and repos layers,

plus a Python test for the original 'svn diff' recipe, so I feel

pretty confident that this particular issue won't easily reappear.

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

(test_funcs): No longer expect node_locations2() to fail.

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

(test_funcs): No longer expect closest_copy_test() to fail.

* subversion/tests/cmdline/

(test_list): No longer expect diff_in_renamed_folder() to fail.

* subversion/libsvn_fs_fs/tree.c

(fs_closest_copy): Use the right dag_node_t when checking for the

item-created-in-copy-target special case.

* subversion/libsvn_fs_base/tree.c

(txn_body_closest_copy): Use the right dag_node_t when checking for

the item-created-in-copy-target special case.

  1. … 4 more files in changeset.
Add a new, currently XFAILing, test for issue #2600, a bug reported on

the mailing list (

Hopefully I'll have a solution soon.

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

(node_locations2): New.

(test_funcs): Reference the new test.

Fix for issue #2486: Svnserve 1.3 authz: writing on subfolder requires read

access on repository root. Removed overly restrictive tests for read access

when opening root or opening a directory.

Patch by: Lieven Govaerts <>

* subversion/libsvn_repos/commit.c:

(open_root): removed check on read access

(open_directory): removed check on read access

* subversion/tests/cmdline/

new file, contains tests for issue #2486.

* subversion/tests/cmdline/svntest/

(run_and_verify_commit): add --username and --password parameters to the


* subversion/tests/cmdline/svntest/

(get_authz_file_path): new function

(get_svnserve_conf_file_path): new function

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

(commit_editor_authz): removed a now obsolete part of the test.

  1. … 4 more files in changeset.
Reformat the code to use a consistent no-space-before-param-list-paren style.

See here for the vote that decided this:

From: "Peter N. Lundblad" <>

To: "Peter N. Lundblad" <>


Subject: Results of: [VOTE] New space-before-parens style

Date: Wed, 8 Feb 2006 12:00:35 +0100 (CET)

Message-ID: <Pine.LNX.4.55.0602080918350.10805@localhost.localdomain>

I took the opportunity to make spacing among all parens in SVN_ERR

macro calls consistent. But I did not address consistency of casts,

nor whether a function name should always appear below its return type

in declarations and definitions, nor whether there should be a space

before/after the "*" when declaring pointer return types.

* www/hacking.html

(coding-style): Document that we are no-space-before-paren now.

* everywhere: Reformat.

  1. … 363 more files in changeset.
Stop calling deprecated APIs; call the revised versions instead. In all

cases except the first, don't try to use any new features of the new APIs.

* subversion/libsvn_client/commit_util.c

(harvest_committables): Call the new svn_wc_walk_entries2() and enable

cancellation in it.

* subversion/libsvn_client/diff.c

(do_merge, diff_repos_wc): Call the new svn_ra_do_diff2().

* subversion/libsvn_client/ra.c

(open_tmp_file): Call the new svn_io_open_unique_file2().

* subversion/libsvn_repos/dump.c

(svn_repos_dump_fs2): Call the new svn_repos_replay2().

* subversion/libsvn_wc/adm_ops.c

(svn_wc_process_committed2): Call itself to recurse, not its predecessor.

(erase_from_wc): Call the new svn_io_get_dirents2(). (The new part of the

result is not used.)

* subversion/libsvn_wc/status.c

(get_dir_status): Call the new svn_io_get_dirents2(). (The new part of the

result was already being used; the reimplementation of the old function

happened to provide it.)

* subversion/mod_dav_svn/repos.c

(dav_svn_deliver): Call the new svn_io_get_dirents2().

* subversion/svndumpfilter/main.c

(filtering_vtable): Upgrade to svn_repos_parser_fns2_t.

(do_filter): Call the new svn_repos_parse_dumpstream2().

* subversion/svnlook/main.c

(generate_delta_tree): Call the new svn_repos_replay2().

(do_log): Call the new svn_subst_translate_cstring2().

(do_history): Call the new svn_repos_history2().

* subversion/svnsync/main.c

(open_tmp_file): Call the new svn_io_open_unique_file2().

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

(node_tree_delete_under_copy): Call the new svn_repos_replay2().

  1. … 10 more files in changeset.