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

Changeset 874287 is being indexed.

* 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.

Add a version of svn_error_compose that is SVN_NO_ERROR-tolerant.

* subversion/include/svn_error.h,

* subversion/libsvn_subr/error.c

(svn_error_compose_create): New function.

* subversion/libsvn_client/resolved.c

(svn_client_resolved): Move below svn_client_resolve() which it calls,

because that's the natural order in C.

Add some error-scenario cleanup logic, some of it needed since r34187

stopped using delete-on-close semantics for the tempfile, some of it

needed probably since the inception of this code.

* subversion/libsvn_subr/subst.c

(svn_subst_copy_and_translate3): Clean up streams and temporary

files in the error case. The lack of this code was causing

translate-tests 14 to leave two tempfile turds.

* STATUS: Nominate r34171 (fix a character encoding failure).
Revert r34200 because it accidentally included the nominated change as well as the nomination.
* STATUS: Nominate r34171 (fix a character encoding failure).
Followup to r34197.

* subversion/tests/svn_test_main.c

(main): Oops. Fix a use of an AND where an OR was intended.

Found by: danielsh


(rocksun): Whups, say "zh" instead of "cn", following up to r34195.

Found by: arfrever

Bang support for --server-minor-version testing into the C test

framework, and use it in the FS and Repos tests.

NOTE: Only one failure that I didn't expect turned up:

$ ./fs-test --server-minor-version=4 --fs-type=fsfs


subversion/tests/libsvn_fs/fs-test.c:369: (apr_err=160000)

svn_tests: the transaction name '0-3' was reused

FAIL: lt-fs-test 5: check that transaction names are not reused


* subversion/tests/svn_test.h

(svn_test_opts_t): Add server_minor_version.

* subversion/tests/svn_test_main.c

(server_minor_version_opt): New enum.

(cl_options): Add bits for new --server-minor-version option.

(main): Add handling of new --server-minor-version option.

* subversion/tests/svn_test_fs.h

(svn_test__create_bdb_fs): Add 'opts' parameter.

* subversion/tests/svn_test_fs.c

(make_fs_config, create_fs): Add 'server_minor_version' parameter

and handling.

(svn_test__create_bdb_fs): Add 'opts' parameter, and update call to


(svn_test__create_fs, svn_test__create_repos): Update call to create_fs().

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

(node_origin_rev): Bail (with success) when testing BDB with

server-minor-version 4.

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

(node_location_segments): Bail (with success) when testing BDB with

server-minor-version 4.

* subversion/tests/libsvn_fs_base/changes-test.c,

* subversion/tests/libsvn_fs_base/fs-base-test.c,

* subversion/tests/libsvn_fs_base/strings-reps-test.c

Update calls to svn_test__create_bdb_fs().

JavaHL: A follow-up to r34184, adjust the JavaHL tests to no

longer expect property modifications when an item is moved.

[ in subversion/bindings/javahl/ ]

* tests/org/tigris/subversion/javahl/

(testMove): Remove expectations of mergeinfo creation.


(rocksun): Add as a new Chinese translator for the www area.

(nmiyo): While here, expand domain from faq to www; anyone who can

translate the faq can obviously translate other documents in www.

Revert r34149.

Suggested by: hwright

* subversion/libsvn_subr/deprecated.c: Include svn_path.h, to avoid an

"implicit declaration of function 'svn_path_split'" warning.

Move a deprecated function to the deprecated file (thus removing a warning).

* subversion/libsvn_subr/io.c

(svn_io_open_unique_file2, svn_io_open_unique_file): Move from here...

* subversion/libsvn_subr/deprecated.c

(svn_io_open_unique_file2, svn_io_open_unique_file): here.

* subversion/libsvn_wc/tree_conflicts.h

(svn_wc__read_tree_conflicts_from_entry): Un-Doxygen-ate the doc string.

(svn_wc__write_tree_conflicts_to_entry): Improve the doc string.

Fix some typos.

* subversion/bindings/ctypes-python/test/

(WCTestCase._info_receiver): Renamed from ...

(WCTestCase._info_reciever): ... this.

(WCTestCase.test_info, WCTestCase.test_copy, WCTestCase.test_move,

WCTestCase.test_delete, WCTestCase.test_mkdir, WCTestCase.test_add,

WCTestCase.test_revert, WCTestCase.test_lock, WCTestCase.test_unlock): Use

WCTestCase._info_receiver() instead of WCTestCase._info_reciever().

* subversion/bindings/swig/python/tests/

(SubversionClientTestCase.log_receiver): Fix a typo in doc string.

* subversion/libsvn_ra_neon/ra_neon.h

(UNEXPECTED_ELEMENT): Fix a typo in doc string.

* www/faq.html

(obstructed-add): Fix a typo.

* subversion/svn/tree-conflicts.c

(new_tree_conflict_phrases): Tweak tree conflict phrases so that

they do not have any parts in parentheses.

Hopefully this is easier to parse. (No, I did not consult a human

interface design expert prior to this change... If you know any,

please give me their number, I think we could use some external

help with the tree conflicts UI design.)

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_provider): Following up on r34085, load

windows ssl server trust provider when asked for the ssl server trust


Convert remaining uses of svn_io_open_unique_file2 to other function

calls, as appropriate.

* subversion/libsvn_subr/subst.c:

(svn_subst_copy_and_translate3, svn_subst_create_translated): switch to


* subversion/libsvn_subr/io.c:

(svn_io_copy_file, svn_io_file_move): switch to svn_io_open_unique_file3.

(reown_file): switch param from PATH_APR to just PATH. all the calls

were to SVN functions, so we should not be using an APR path. switch

to svn_io_open_unique_file3.

(io_set_file_perms): pass svn-internal path to reown_file.

* subversion/mod_dav_svn/activity.c:

(dav_svn__store_activity): lose a bunch of code in favor of


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

(authz_get_handle): revamp to use svn_io_write_unique and other

svn-style IO functions.

* subversion/svn/util.c:

(svn_cl__edit_string_externally): change parameter to FILENAME rather

than PREFIX. switch to svn_io_open_uniquely_named.

* subversion/libsvn_wc/props.c:

(open_reject_tmp_file, svn_wc__merge_props): switch to


* subversion/libsvn_client/externals.c:

(relegate_dir_external): switch to svn_io_uniquely_named.

* subversion/libsvn_fs_fs/fs_fs.c:

(svn_fs_fs__set_revision_proplist): switch to svn_stream_open_unique

(svn_fs_fs__set_uuid): revamp to use svn_io_write_unique

Fix some behaviour around "resolved" and tree-conflicts.

Take stsp's patch[*] and fix it: do not try to read entries from the parent

directory of a working copy root that was supplied as a target.

[*] See this post:

Date: Fri, 14 Nov 2008 00:25:02 +0000

From: Stefan Sperling <>


Message-ID: <>

Subject: Re: Tree conflict bugs I've just been finding

Also fix missing resolving of deleted and committed files that became

tree-conflict victims during a merge.

* subversion/libsvn_client/resolved.c (svn_client_resolve),

* subversion/libsvn_wc/adm_ops.c (resolve_found_entry_callback):

Ensure we do not end up trying to find tree conflict info in the

parent directory of the working copy root.

* subversion/libsvn_wc/entries.c

(visit_tc_too_found_entry): Also visit tree-conflicts of deleted items.

* subversion/tests/cmdline/

(resolved_on_wc_root, resolved_on_deleted_item):

New tests file with two new tests for the issues fixed by this commit.

    • ?
* TODO-1.6: Remove a done todo.
One small step towards mergeinfo sanity; no more explicit mergeinfo

on a WC-to-WC move/copy destination unless the source had some.

Discussed here:

* subversion/libsvn_client/copy.c

(propagate_mergeinfo_within_wc): Remove.

(do_wc_to_wc_copies, do_wc_to_wc_moves): Don't set explicit mergeinfo on

a cp/mv destination beyond what the source had.

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

Update test expectations to no longer expect WC-to-WC copy/move

destinations to always have explicit (usually empty) mergeinfo. In a

few cases where this mergeinfo was essential to the purpose of the test,

the WC-to-WC cp/mv was replaced with a REPOS-to-REPOS cp/mv or empty

mergeinfo was manually set on the destination.