Checkout Tools
  • last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Convert db-tests.c's initial state generation to a similar C struct as used

in op-depth-tests.c, to allow handling future database format updates

without rewriting all sql manually.

* subversion/libsvn_wc/wc-checks.sql

(STMT_STATIC_VERIFY): Extend further. This time to fix some NULL cases

caused by joining.

* subversion/tests/libsvn_wc/db-test.c

(TESTING_DATA): Remove NODES and ACTUAL init.

(NOT_MOVED,

NO_COPY_FROM): New defines.

(nodes_init_data,

actual_init_data): New variables, manually extracted from TESTING_DATA.

(create_open): Update caller.

* subversion/tests/libsvn_wc/entries-compat.c

(create_fake_wc): Update caller.

* subversion/tests/libsvn_wc/utils.c

(includes): Add token-map.h.

(svn_test__create_fake_wc): Use db queries to fill wc.db if data

provided.

* subversion/tests/libsvn_wc/utils.h

(svn_test__nodes_data_t,

svn_test__actual_data_t): New types.

(svn_test__create_fake_wc): Add arguments to pass initial nodes and

actual rows.

  1. … 4 more files in changeset.
Bring the wc-db tests in the world where we store moves in WORKING, and

fix the db query that allowed this test to survive so long.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_DELETION_INFO): Rewrite as join to allow access to more

columns. Add moved_to result.

(STMT_SELECT_DELETION_INFO_SCAN): Remove known bad statement.

* subversion/libsvn_wc/wc_db.c

(scan_deletion_txn): Always use STMT_SELECT_DELETION_INFO.

* subversion/tests/libsvn_wc/db-test.c

(TESTING_DATA): Stop storing moves in the pre 1.8.x locations,

move them to WORKING instead.

  1. … 2 more files in changeset.
Further improvements to the db-test test setup: fix shadowing

of 'J'.

* subversion/tests/libsvn_wc/db-test.c

(TESTING_DATA): Shadow node at the right op-depth.

(test_scan_deletion): Use SVN_TEST_STRING_ASSERT. Revert recent

assumption change.

Fix the op-depth calculations in db-tests.c, to no longer trip +-

every validation rule of op-depths. This involved changing

a local added subdir (with descendants at the same op-depth!)

into a copy.

These testcases were written before NODES introduced op-depth,

and the tests were only updated to not trigger test failures.

* subversion/libsvn_wc/wc-checks.sql

(STMT_STATIC_VERIFY): Make ancestor check a bit stricter.

* subversion/tests/libsvn_wc/db-test.c

(TESTING_DATA): Tweak setup.

(test_pdh): Install ancestor for not-present to avoid

error.

(validate_abspath): Tweak function to print paths on error.

(test_scan_addition): Tweak expectations after transforming

add into a copy.

(test_scan_deletion): Tweak test. Minor change to handle

working delete.

  1. … 1 more file in changeset.
Fix more cases where the direct db operations in the C tests create nonstandard

db instances.

* subversion/libsvn_wc/wc-checks.sql

(STMT_STATIC_VERIFY): Extend tests.

* subversion/tests/libsvn_wc/db-test.c

(TESTING_DATA): Give present directories a depth and remove pristine data

from local additions that aren't copies.

* subversion/tests/libsvn_wc/entries-compat.c

(TESTING_DATA): Give present directories a depth; files a checksum and

remove pristine data from local additions.

* subversion/tests/libsvn_wc/op-depth-test.c

(insert_actual): When turning a directory in a file, really make it a file.

* subversion/tests/libsvn_wc/wc-queries-test.c

(test_verify_parsable): New function, verifying the check statements.

(test_funcs): Add test_verify_parsable.

* subversion/tests/libsvn_wc/wc-test-queries.sql

(STMT_ENSURE_EMPTY_PRISTINE): New statement.

(STMT_NODES_SET_FILE): Set checksum, remove depth.

  1. … 5 more files in changeset.
Update the test data in db-test.c to at least pass the current static

validations. Add two missing intermediate directories, and remove

values that shouldn't be set.

* subversion/libsvn_wc/wc-checks.sql

(STMT_STATIC_VERIFY): Add column for op-depth value to queries.

* subversion/libsvn_wc/wc_db_wcroot.c

(verify_sqlite): Update usage.

* subversion/tests/libsvn_wc/db-test.c

(TESTING_DATA): Tweak values to set columns NULL that should be NULL.

(test_children): Update expected results.

(test_working_info): Update expected results.

  1. … 2 more files in changeset.
Minor argument cleanup inside wc_db private code. No external behaviour changes.

* subversion/libsvn_wc/update_editor.c

(close_directory): Update caller.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_base_add_directory): Use default argument order for conflicts.

(svn_wc__db_op_break_move_internal): Move function here to allow calling

into clear_moved_here() which was identical to the second part of this

function.

(op_revert_txn,

op_revert_recursive_txn): Update caller.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_add_directory): Use default argument order for conflicts.

* subversion/libsvn_wc/wc_db_update_move.c

(svn_wc__db_op_break_move_internal): Remove function here.

(break_moved_away,

break_moved_away_children): Update caller.

* subversion/tests/libsvn_wc/db-test.c

(test_inserting_nodes): Update caller.

* subversion/tests/libsvn_wc/op-depth-test.c

(base_dir_insert_remove): Update caller.

  1. … 6 more files in changeset.
Make the C tests work with the --enable-optimize configure option.

Because the main() function used to be defined in libsvn_test,

the -flto option (which performs rather aggressive link-time

optimizations) would cause the linker to remove all "unreferenced"

static functions ... which includes all the actual tests.

Which this change, main() is now defined in each test driver.

* subversion/tests/svn_test.h

(test_funcs, svn_test_max_threads): Remove external declarations.

(svn_test_main): New prototype for the (existing-but-renamed) test driver.

(SVN_TEST_MAIN): Bolierplate macro that generates a main() implementation.

* subversion/tests/svn_test_main.c

(svn_test_main): Renamed from 'main', and takes two extra parameters,

'max_threads' and 'test_funcs'. Propagates test_funcs to get_array_size,

do_test_num and do_tests_concurrently.

(get_array_size, do_test_num,

test_params_t, test_thread, do_tests_concurrently): Require a test_funcs

parameter. All uses updated.

* subversion/tests/libsvn_client/client-test.c,

subversion/tests/libsvn_client/mtcc-test.c,

subversion/tests/libsvn_delta/random-test.c,

subversion/tests/libsvn_delta/window-test.c,

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

subversion/tests/libsvn_diff/parse-diff-test.c,

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

subversion/tests/libsvn_fs/locks-test.c,

subversion/tests/libsvn_fs_base/

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,

subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c,

subversion/tests/libsvn_fs_x/fs-x-pack-test.c,

subversion/tests/libsvn_fs_x/string-table-test.c,

subversion/tests/libsvn_ra/ra-test.c,

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

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

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

subversion/tests/libsvn_subr/cache-test.c,

subversion/tests/libsvn_subr/checksum-test.c,

subversion/tests/libsvn_subr/compat-test.c,

subversion/tests/libsvn_subr/config-test.c,

subversion/tests/libsvn_subr/crypto-test.c,

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

subversion/tests/libsvn_subr/error-code-test.c,

subversion/tests/libsvn_subr/error-test.c,

subversion/tests/libsvn_subr/hashdump-test.c,

subversion/tests/libsvn_subr/io-test.c,

subversion/tests/libsvn_subr/mergeinfo-test.c,

subversion/tests/libsvn_subr/named_atomic-test.c,

subversion/tests/libsvn_subr/opt-test.c,

subversion/tests/libsvn_subr/packed-data-test.c,

subversion/tests/libsvn_subr/path-test.c,

subversion/tests/libsvn_subr/prefix-string-test.c,

subversion/tests/libsvn_subr/priority-queue-test.c,

subversion/tests/libsvn_subr/revision-test.c,

subversion/tests/libsvn_subr/root-pools-test.c,

subversion/tests/libsvn_subr/skel-test.c,

subversion/tests/libsvn_subr/spillbuf-test.c,

subversion/tests/libsvn_subr/sqlite-test.c,

subversion/tests/libsvn_subr/stream-test.c,

subversion/tests/libsvn_subr/string-test.c,

subversion/tests/libsvn_subr/subst_translate-test.c,

subversion/tests/libsvn_subr/time-test.c,

subversion/tests/libsvn_subr/translate-test.c,

subversion/tests/libsvn_subr/utf-test.c,

subversion/tests/libsvn_wc/conflict-data-test.c,

subversion/tests/libsvn_wc/db-test.c,

subversion/tests/libsvn_wc/entries-compat.c,

subversion/tests/libsvn_wc/op-depth-test.c,

subversion/tests/libsvn_wc/pristine-store-test.c,

subversion/tests/libsvn_wc/wc-queries-test.c,

subversion/tests/libsvn_wc/wc-test.c:

(max_threads): Renamed from svn_test_max_threads and made static.

(test_funcs): Made static.

(SVN_TEST_MAIN): Expanded boilerplate main() function.

  1. … 54 more files in changeset.
Fix some typos.

* CHANGES:

* contrib/cgi/mirror_dir_through_svn.cgi:

* contrib/client-side/emacs/psvn.el:

* contrib/client-side/svn2cl/svn2cl.xsl:

* contrib/hook-scripts/remove-zombie-locks.py:

* contrib/hook-scripts/syntax-check.sh:

* contrib/server-side/svnstsw/configure.ac:

* notes/assurance.txt:

* notes/fs-improvements.txt:

* notes/knobs:

* notes/merge-tracking/func-spec.html:

* notes/merge-tracking/summit-survey.html:

* notes/wc-ng/design:

* notes/wc-ng/locking:

* notes/wc-ng/nodes:

* subversion/bindings/ctypes-python/csvn/core/__init__.py:

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

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java:

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

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

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

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

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

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java:

* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java:

* subversion/bindings/swig/include/proxy_apr.swg:

* subversion/bindings/swig/perl/native/Client.pm:

* subversion/bindings/swig/perl/native/t/3client.t:

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c:

* subversion/include/private/svn_diff_tree.h:

* subversion/include/private/svn_io_private.h:

* subversion/include/private/svn_ra_svn_private.h:

* subversion/include/private/svn_string_private.h:

* subversion/include/svn_io.h:

* subversion/include/svn_iter.h:

* subversion/include/svn_props.h:

* subversion/libsvn_client/copy_foreign.c:

* subversion/libsvn_client/diff.c:

* subversion/libsvn_client/merge.c:

* subversion/libsvn_delta/xdelta.c:

* subversion/libsvn_diff/diff4.c:

* subversion/libsvn_diff/util.c:

* subversion/libsvn_fs/editor.c:

* subversion/libsvn_fs_fs/index.c:

* subversion/libsvn_fs_fs/temp_serializer.c:

* subversion/libsvn_fs_fs/temp_serializer.h:

* subversion/libsvn_fs_fs/transaction.c:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_fs_x/fs.h:

* subversion/libsvn_fs_x/index.c:

* subversion/libsvn_fs_x/reps.c:

* subversion/libsvn_fs_x/temp_serializer.c:

* subversion/libsvn_fs_x/temp_serializer.h:

* subversion/libsvn_fs_x/transaction.c:

* subversion/libsvn_fs_x/tree.c:

* subversion/libsvn_ra_serf/README:

* subversion/libsvn_ra_svn/protocol:

* subversion/libsvn_repos/dump.c:

* subversion/libsvn_repos/hooks.c:

* subversion/libsvn_repos/load-fs-vtable.c:

* subversion/libsvn_subr/dirent_uri.c:

* subversion/libsvn_subr/io.c:

* subversion/libsvn_subr/opt.c:

* subversion/libsvn_subr/string.c:

* subversion/libsvn_subr/subst.c:

* subversion/libsvn_wc/entries.c:

* subversion/libsvn_wc/externals.c:

* subversion/libsvn_wc/lock.c:

* subversion/libsvn_wc/update_editor.c:

* subversion/svn/file-merge.c:

* subversion/svn/status-cmd.c:

* subversion/svnlook/svnlook.c:

* subversion/svnrdump/load_editor.c:

* subversion/svnserve/svnserve.c:

* subversion/tests/cmdline/commit_tests.py:

* subversion/tests/cmdline/diff_tests.py:

* subversion/tests/cmdline/merge_reintegrate_tests.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/revert_tests.py:

* subversion/tests/cmdline/svnauthz_tests.py:

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

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

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

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

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

* subversion/tests/libsvn_wc/db-test.c:

* subversion/tests/svn_test_main.c:

* tools/dev/trails.py: Fix some typos.

Patch by: Veres Lajos <vlajos{_AT_}gmail.com>

(I removed some changes that were wrong or can't be made due to API breakage)

  1. … 90 more files in changeset.
In the C tests: When we create a wc.db file containing test data, we should

close it before running the tests on it using another db instance.

* subversion/libsvn_wc/wc_db.c

(init_db): Accidental change, reverted in r1558573.

* subversion/tests/libsvn_wc/db-test.c

(create_open): Update caller.

* subversion/tests/libsvn_wc/entries-compat.c

(create_fake_wc): Update caller.

* subversion/tests/libsvn_wc/utils.c

(svn_test__create_fake_wc): Remove result pool. There are no output

arguments. Install statistics.

* subversion/tests/libsvn_wc/utils.h

(svn_test__create_fake_wc): Update prototype.

  1. … 4 more files in changeset.
Cleanup test infrastructure creation a bit.

* subversion/tests/libsvn_wc/db-test.c

(create_open): Remove tree before creating new data.

* subversion/tests/libsvn_wc/utils.c

(svn_test__create_fake_wc): Remove single file DB delete right before

creating the new database.

  1. … 1 more file in changeset.
* subversion/tests/libsvn_wc/db-test.c

(create_open): Use transient data area and add to cleanup before creating

in an attempt to make these tests fail less often on the buildbot.

Add "--parallel" option to our C tests.

Besides shaving off a few seconds off our total test execution time,

parallel execution also stresses our code and the tests themselves

harder. It uncovers things like improperly separated working sets

that make post-failure analysis harder.

Parallel mode is only available with APR 1.3+ and threads enabled.

The option will simply be ignored in other configurations. Further

limitations are cleanups being delayed to after all tests completed

and segfaults not being intercepted.

Some tests can't be executed in parallel. Therefore, we introduce

svn_test_max_threads a simple upper limit to the number of threads

supported that each test must define alongside the test_funcs array.

This patch sets it to "1" in many cases because the tests are so

small that multi-threaded execution is simply not worth it.

* build/run_tests.py

(TestHarness._run_c_test): Pass --parallel option to the individual

test applications.

* subversion/tests/svn_test.h

(svn_test_max_threads): Declare new external setting to be set by

every test application.

* subversion/tests/svn_test_main.c

(parallel): New command line option presence flag.

(parallel_opt,

cl_options): Declare the new "--parallel" option.

(svn_test_add_dir_cleanup): Synchronize shared pool access since

this might be called from multiple

threads at the same time.

(log_results): Result logger function factored out from do_test_num

to be shared between serialized and parallel test

execution code.

(do_test_num): Use that new function.

(test_params_t,

test_thread,

do_tests_concurrently): Threads, their parameter and the thread

starter for thread-pooled test execution.

(main): Handle the new option.

Call concurrent execution when in PARALLEL mode.

* subversion/tests/libsvn_delta/random-test.c

subversion/tests/libsvn_subr/named_atomic-test.c

(svn_test_max_threads): These tests don't support concurrent execution.

* subversion/tests/libsvn_delta/random-test.c

subversion/tests/libsvn_delta/window-test.c

subversion/tests/libsvn_diff/parse-diff-test.c

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

subversion/tests/libsvn_ra/ra-test.c

subversion/tests/libsvn_subr/auth-test.c

subversion/tests/libsvn_subr/cache-test.c

subversion/tests/libsvn_subr/checksum-test.c

subversion/tests/libsvn_subr/compat-test.c

subversion/tests/libsvn_subr/config-test.c

subversion/tests/libsvn_subr/crypto-test.c

subversion/tests/libsvn_subr/dirent_uri-test.c

subversion/tests/libsvn_subr/error-code-test.c

subversion/tests/libsvn_subr/error-test.c

subversion/tests/libsvn_subr/hashdump-test.c

subversion/tests/libsvn_subr/mergeinfo-test.c

subversion/tests/libsvn_subr/named_atomic-test.c

subversion/tests/libsvn_subr/opt-test.c

subversion/tests/libsvn_subr/packed-data-test.c

subversion/tests/libsvn_subr/path-test.c

subversion/tests/libsvn_subr/prefix-string-test.c

subversion/tests/libsvn_subr/priority-queue-test.c

subversion/tests/libsvn_subr/revision-test.c

subversion/tests/libsvn_subr/root-pools-test.c

subversion/tests/libsvn_subr/skel-test.c

subversion/tests/libsvn_subr/spillbuf-test.c

subversion/tests/libsvn_subr/sqlite-test.c

subversion/tests/libsvn_subr/stream-test.c

subversion/tests/libsvn_subr/string-test.c

subversion/tests/libsvn_subr/subst_translate-test.c

subversion/tests/libsvn_subr/time-test.c

subversion/tests/libsvn_subr/utf-test.c

subversion/tests/libsvn_wc/conflict-data-test.c

subversion/tests/libsvn_wc/wc-queries-test.c:

(svn_test_max_threads): These are too small to benefit from multi-threading.

* subversion/tests/libsvn_client/client-test.c

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

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

subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

subversion/tests/libsvn_fs/fs-test.c

subversion/tests/libsvn_fs/locks-test.c

subversion/tests/libsvn_fs_x/fs-x-pack-test.c

subversion/tests/libsvn_fs_x/string-table-test.c

subversion/tests/libsvn_repos/repos-test.c

subversion/tests/libsvn_subr/io-test.c

subversion/tests/libsvn_subr/translate-test.c

subversion/tests/libsvn_wc/db-test.c

subversion/tests/libsvn_wc/op-depth-test.c

subversion/tests/libsvn_wc/wc-test.c

(svn_test_max_threads): Set concurrency limit to whatever various test

runs suggested as the most efficient value.

* subversion/tests/libsvn_wc/entries-compat.c

subversion/tests/libsvn_wc/pristine-store-test.c

(svn_test_max_threads): Set concurrency limit to "unbounded".

  1. … 54 more files in changeset.
Cleanup testdata after running the tests when requested in a few more cases.

This allows running the tests in a smaller ramdrive than without this patch.

My ramdrive was to small for running the BDB tests on x64 for rc2.

* subversion/tests/libsvn_wc/db-test.c

(create_open): Register working copy for cleanup.

* subversion/tests/libsvn_wc/entries-compat.c

(create_open): Register working copy for cleanup.

  1. … 1 more file in changeset.
Merge svn_kind_t into svn_node_kind_t, leaving only one public enumeration

that describes node kinds.

* subversion/include/svn_types.h (svn_kind_t): Removed.

All uses of svn_kind_t were replaced with svn_node_kind_t.

(svn_node_kind_t): New enumeration constant, svn_node_symlink.

Replaces all previous uses of svn_kind_symlink.

(svn__node_kind_from_kind): Removed. All call sites updated.

(svn__kind_from_node_kind): Removed. All call sites updated.

* subversion/libsvn_wc/tree_conflicts.c (node_kind_map):

Added comment about incompatible representation of svn_node_unknown.

* subversion/libsvn_wc/node.c (convert_db_kind_to_node_kind):

May be redundant, and comment is out of date. Added a note about that.

There are also a zillion changes in dependent files, and they all result

from the following renames:

svn_kind_t to svn_node_kind_t

svn_kind_none to svn_node_none

svn_kind_file to svn_node_file

svn_kind_dir to svn_node_dir

svn_kind_unknown to svn_node_unknown

svn_kind_symlink to svn_node_symlink

  1. … 65 more files in changeset.
Store NULL rather than 0 when not setting NODES.moved_here TRUE.

* subversion/libsvn_wc/wc_db.c

(insert_working_node, db_op_copy_shadowed_layer): Only bind

moved_here if set.

* subversion/libsvn_wc/wc-queries.sql

(STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH): Reorder parameters to

make moved_here the last.

* subversion/tests/libsvn_wc/db-test.c

(TESTING_DATA): Use NULL rather than 0.

* subversion/tests/libsvn_wc/entries-compat.c

(TESTING_DATA): Use NULL rather than 0.

  1. … 3 more files in changeset.
Add a new svn_wc__db_scan_moved() function based on the internal scan_added()

which allows access to a bit more information. Use this information to fix

a case where a specific move could never be committed.

* subversion/libsvn_wc/adm_files.c

(svn_wc__internal_ensure_adm): Update caller.

* subversion/libsvn_wc/adm_ops.c

(check_can_add_to_parent): Update caller.

* subversion/libsvn_wc/copy.c

(copy_or_move): Update caller.

* subversion/libsvn_wc/entries.c

(get_info_for_deleted,

read_one_entry): Update caller.

* subversion/libsvn_wc/info.c

(build_info_for_node): Update caller. Only read moved_from for

op-roots, like how we handle copies.

* subversion/libsvn_wc/node.c

(svn_wc__internal_get_repos_info): Update caller.

(svn_wc__internal_get_origin): Update caller.

(svn_wc__node_was_moved_here): Use new api.

* subversion/libsvn_wc/status.c

(read_info): Use different output argument of svn_wc__db_scan_addition.

(assemble_status): Reduce scope of err. Use new api for obtaining moved

from information.

* subversion/libsvn_wc/update_editor.c

(check_tree_conflict,

add_directory,

add_file): Update caller.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_scan_addition): Remove two arguments. Tell implementation which

arguments are not needed to avoid additional queries in generic cases.

(svn_wc__db_scan_moved): New function.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_scan_addition): Remove moved_from handling additional

information as no api user is really depending on it.

(svn_wc__db_scan_moved): New function.

* subversion/tests/libsvn_wc/db-test.c

(test_scan_addition): Update caller. Also call svn_wc__db_scan_moved.

* subversion/tests/libsvn_wc/op-depth-test.c

(nested_move_commit): Use new api.

(test_funcs): Remove XFail from commit_moved_descendant.

  1. … 11 more files in changeset.
Use SVN_TEST_ASSERT_ERROR macro rather than coding the error comparison.

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

(test_svn_subst_translate_string2): Use macro.

* subversion/tests/libsvn_wc/db-test.c

(test_getting_info): Use macro.

* subversion/tests/libsvn_wc/op-depth-test.c

(test_op_revert, copy_wc_wc_server_excluded, layered_moved_to,

update_within_move): Use macro.

* subversion/tests/libsvn_wc/pristine-store-test.c

(pristine_write_read, reject_mismatching_text): Use macro.

  1. … 3 more files in changeset.
Coding style patch: in logical expressions, instead of comparing

with arithmetic constants use boolean operations. I.e. replace

<expr> == TRUE with <expr> and

<expr> == FALSE with !<expr>

* subversion/libsvn_delta/svndiff.c

(send_simple_insertion_window,

window_handler): change condition style

* subversion/libsvn_fs_base/fs.c

(svn_fs_base__clean_logs): ditto

* subversion/libsvn_fs_fs/fs_fs.c

(representation_string,

create_rep_state_body,

build_rep_list): ditto

* subversion/libsvn_ra_serf/locks.c

(handle_lock): ditto

* subversion/libsvn_ra_serf/property.c

(create_propfind_body): same here,

* subversion/libsvn_ra_serf/update.c

(cancel_fetch,

handle_fetch,

end_report,

finish_report): here,

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__handle_xml_parser): here,

* subversion/libsvn_ra_svn/client.c

(optbool_to_tristate): here,

* subversion/libsvn_repos/authz.c

(authz_parse_section): and here.

* subversion/libsvn_repos/fs-wrap.c

(svn_repos__validate_prop): here as well

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): and here

* subversion/libsvn_subr/deprecated.c

(print_command_info): here

* subversion/libsvn_subr/opt.c

(print_command_info2): more of the same

* subversion/libsvn_subr/subst.c

(translate_chunk): ditto

* subversion/libsvn_subr/win32_crashrpt.c

(write_var_values,

svn__unhandled_exception_filter): ditto

* subversion/svn/svn.c

(sub_main): ditto

* subversion/svnsync/svnsync.c

(filter_props): and more of the

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

(test_readonly): same thing

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

(test21): ditto

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

(test_svn_subst_translate_string2_null_encode): here

* subversion/tests/libsvn_wc/db-test.c

(test_getting_info,

test_working_info): and here

* tools/client-side/svn-bench/svn-bench.c

(sub_main): and finally here

  1. … 21 more files in changeset.
Add a 'properties' output parameter to most of the WC DB functions that read

node info from a layer:

svn_wc__db_base_get_info_internal()

svn_wc__db_base_get_info()

svn_wc__db_depth_get_info()

svn_wc__db_read_pristine_info()

svn_wc__db_read_info() -- NOT YET

The aim is to regularize the APIs by getting the props along with other info

about a node. This should allow the documentation and the implementation to

become more consistent than the separate APIs we currently have for reading

the props alone -- for example, there is currently no API to read the props

for a node at a given depth.

The new 'props' output does not replace the 'had_props' boolean output which

remains available for callers that just need to test for the presence of

properties, since that is quicker.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_get_info,

svn_wc__db_read_pristine_info): Add a 'props' output parameter.

* subversion/libsvn_wc/wc_db_private.h

(svn_wc__db_base_get_info_internal,

svn_wc__db_depth_get_info): Add a 'props' output parameter.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_base_get_info_internal,

svn_wc__db_base_get_info,

svn_wc__db_depth_get_info): Add a 'props' output parameter.

(...everywhere...): Track the change: pass NULL.

* subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/adm_files.c,

subversion/libsvn_wc/ambient_depth_filter_editor.c,

subversion/libsvn_wc/conflicts.c,

subversion/libsvn_wc/diff_editor.c,

subversion/libsvn_wc/diff_local.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/externals.c,

subversion/libsvn_wc/info.c,

subversion/libsvn_wc/node.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/util.c,

subversion/libsvn_wc/wc_db_update_move.c,

subversion/libsvn_wc/workqueue.c

(...everywhere...): Track the change: pass NULL.

* subversion/tests/libsvn_wc/db-test.c

(test_getting_info): Test the new parameter (just a tiny bit).

(...everywhere...): Track the change: pass NULL.

  1. … 18 more files in changeset.
Make retrieving the BASE properties on a node that doesn't have properties,

because it has some not-present state an error.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_BASE_PROPS): Also select presence.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_base_get_props): In the no-properties case check the presence

and return an error instead of an empty hash for presence values that don't

have properties.

* subversion/tests/libsvn_wc/db-test.c

(validate_node): Don't retrieve properties for not present nodes.

  1. … 2 more files in changeset.
Standardize the naming of the recorded size and time variable names.

No functional changes.

* subversion/libsvn_wc/adm_ops.c

(revert_restore): Rename local variable.

* subversion/libsvn_wc/entries.c

(db_node_t): Rename variables in struct.

(insert_node,

write_entry): Update users.

* subversion/libsvn_wc/props.c

(do_propset): Update comment.

* subversion/libsvn_wc/status.c

(read_info,

assemble_status): Update struct usage.

* subversion/libsvn_wc/update_editor.c

(svn_wc_add_repos_file4): Update comment.

* subversion/libsvn_wc/wc_db.c

(read_info): Rename argument in prototype.

(insert_base_node): Rename variable.

(record_baton_t): Add comment. Use proper variable names.

(db_record_fileinfo,

svn_wc__db_global_record_fileinfo,

set_props_txn): Update baton usage.

(remove_node_txn): Rename variable.

(read_info,

svn_wc__db_read_info_internal,

svn_wc__db_read_info): Rename argument.

(read_children_info): Update struct usage.

(has_local_mods): Rename variable.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_read_info): Rename argument and update documentation.

(svn_wc__db_info_t): Rename variable.

(svn_wc__db_global_record_fileinfo): Rename arguments and update

documentation.

* subversion/libsvn_wc/workqueue.h

(svn_wc__wq_build_file_install): Update documentation.

* subversion/tests/libsvn_wc/db-test.c

(test_working_info): Rename a few variables.

  1. … 8 more files in changeset.
* subversion/tests/libsvn_wc/db-test.c

(test_working_info): Test a tiny bit more.

* subversion/tests/libsvn_wc/db-test.c

(test_getting_info): Test a tiny bit more.

Make the update editor also handle inherited property updates on switched

files, like how it handles them on directories.

* subversion/libsvn_wc/update_editor.c

(close_file): Add iprop handling, like in close_directory.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_base_add_file,

svn_wc__db_base_add_symlink): Forward iprops.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_add_file,

svn_wc__db_base_add_symlink): Add new_iprops argument.

* subversion/tests/libsvn_wc/db-test.c

(test_inserting_nodes): Update caller.

  1. … 3 more files in changeset.
* subversion/tests/libsvn_wc/db-test.c,

subversion/tests/libsvn_wc/entries-compat.c

(create_open): Don't auto-upgrade working copies in these tests to avoid

accidentally upgrading the parent WC.

  1. … 1 more file in changeset.
Merge the inheritable-props branch back to trunk.

See http://svn.haxx.se/dev/archive-2012-09/0177.shtml

  1. … 68 more files in changeset.
Bump the working copy format to 30 and adjust various bits and pieces

to cope with the effects. This bump enables the following schema changes:

- new NODES index for move information

- new PRISTINE index for md5_checksum

- activate skel-based conflict storage

- rename "absent" presence to "server-excluded"

The bump has been discussed in this dev@ thread:

http://svn.haxx.se/dev/archive-2012-09/0239.shtml

* subversion/libsvn_wc/wc-metadata.sql

(): Stop referring to "absent" as a presence, say "server-excluded" instead.

(STMT_UPGRADE_TO_30): Add "absent" -> "server-excluded" upgrade statement.

* subversion/libsvn_wc/wc.h

(SVN_WC__VERSION): Bump to 30.

* subversion/libsvn_wc/wc_db.c

(presence_map): Rename "absent" to "server-excluded".

* subversion/tests/cmdline/resolve_tests.py

(prop_conflict_resolution): Remove XFail marker for this issue #3707 test.

This test is passing now and this issue is resolved.

* subversion/tests/libsvn_wc/db-test.c

(TESTING_DATA): Rename "absent" to "server-excluded".

(test_getting_info, test_inserting_nodes): Adjust references to "absent"

in comments.

* subversion/tests/libsvn_wc/entries-compat.c

(TESTING_DATA): Rename "absent" to "server-excluded".

* subversion/tests/libsvn_wc/op-depth-test.c

(test_copy_of_deleted): Change comments referring to "absent" presence.

(copy_wc_wc_absent): Rename to ...

(copy_wc_wc_server_excluded): ... this, and also adjust database fields.

(test_funcs): Track above rename.

  1. … 6 more files in changeset.
* subversion/libsvn_wc/update_editor.c

(add_directory): Update caller.

* subversion/libsvn_wc/wc_db.c

(insert_base_baton_t): Add delete_working bool.

(insert_base_node): Add delete_working support.

(svn_wc__db_base_add_file): Add new flags. Move skels to end.

svn_wc__db_base_add_symlink): Make arguments match _file variant.

(svn_wc__db_temp_op_remove_working): Remove functions.

(svn_wc__db_op_begin_update): Add flags.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_add_file): Add flags.

(svn_wc__db_base_add_symlink): Add flags.

(svn_wc__db_temp_op_remove_working): Remove function.

(svn_wc__db_op_begin_update): Add flags.

* subversion/tests/libsvn_wc/db-test.c

(test_inserting_nodes): Update caller.

  1. … 3 more files in changeset.
Following up on the recent introduction of the conflict skel as in-memory

conflict exchange, we can now just install the conflict data from the

conflict skel instead of installing a workqueue item that will perform

that change later.

* subversion/libsvn_wc/conflicts.c

(svn_wc__conflict_skel_is_complete): Operate on const skel.

(svn_wc__conflict_create_markers): Stop creating conflict install wq items.

Note a specific corner case that needs further review.

Store the right path as property conflict marker file.

* subversion/libsvn_wc/conflicts.h

(svn_wc__conflict_skel_is_complete): Mark skel argument as const.

* subversion/libsvn_wc/externals.c

(close_file): Pass conflict.

* subversion/libsvn_wc/merge.c

(svn_wc_merge5): Pass conflict or install conflict directly before running

the wq. (Should move to single operation)

* subversion/libsvn_wc/props.c

(svn_wc__perform_props_merge): Pass conflict.

* subversion/libsvn_wc/update_editor.c

(close_directory,

close_file): Pass conflict.

* subversion/libsvn_wc/wc_db.c

(insert_working_baton_t): Add conflict.

(mark_conflict): Add prototype.

(insert_base_node,

insert_working_node): Enable installing conflict.

(svn_wc__db_external_add_file): Pass conflict.

(svn_wc__db_op_copy_dir,

svn_wc__db_op_copy_file,

svn_wc__db_op_copy_symlink,

set_props_txn): Remove assertion. Pass conflict.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_external_add_file): Add conflict argument.

* subversion/libsvn_wc/workqueue.c

(svn_wc__wq_tmp_build_set_text_conflict_markers,

svn_wc__wq_tmp_build_set_property_conflict_marker): Remove function.

* subversion/libsvn_wc/workqueue.h

(svn_wc__wq_tmp_build_set_text_conflict_markers,

svn_wc__wq_tmp_build_set_property_conflict_marker): Remove function.

* subversion/tests/libsvn_wc/db-test.c

(test_externals_store): Update caller.

  1. … 10 more files in changeset.