Checkout Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Add a test for issue 4798 "revert: option to remove added items from disk".

* subversion/tests/cmdline/revert_tests.py

(revert_remove_added): New test, XFail.

(test_list): Run it.

In 'revert' tests: simplify verifying the expected notifications.

* subversion/tests/cmdline/revert_tests.py

(expected_output_revert,

run_and_verify_revert): New.

(...elsewhere...): Use this 'run_and_verify_revert' wherever an expected

output was specified.

In the test suite: replace 'open().write()' with a 'with' construct.

The form 'with open() as f: f.write()' is nowadays recommended.

This may fix test failures we were seeing on MacOSX in shelf_tests.py

test 15 and perhaps test 12.

* subversion/tests/cmdline/*_tests.py

Use 'with' form instead of 'open().write()'.

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

(file_write): Same, and also for 'codecs.open().write()'.

(file_substitute): Same.

* subversion/tests/cmdline/svntest/sandbox.py

(Sandbox._ensure_authz): Same.

  1. … 16 more files in changeset.
Replace "magic" octal permission values with symbolic ones. That improves

readability as well as portability between Python 2 and 3.

Changes outside our build & test scripts may be incomplete.

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

(S_ALL_READ, S_ALL_WRITE, S_ALL_EXEC,

S_ALL_RW, S_ALL_RX, S_ALL_RWX): Define constants for frequently used

permission patterns.

(safe_rmtree,

_post_create_repos,

create_python_hook_script): Use symbolic constants and combinations

thereof for permission values.

* subversion/tests/cmdline/autoprop_tests.py

* subversion/tests/cmdline/basic_tests.py

* subversion/tests/cmdline/import_tests.py

* subversion/tests/cmdline/prop_tests.py

* subversion/tests/cmdline/revert_tests.py

* subversion/tests/cmdline/schedule_tests.py

* subversion/tests/cmdline/special_tests.py

* subversion/tests/cmdline/svnadmin_tests.py

* subversion/tests/cmdline/svnfsfs_tests.py

* subversion/tests/cmdline/svntest/actions.py

* subversion/tests/cmdline/upgrade_tests.py

* tools/client-side/change-svn-wc-format.py

* tools/server-side/svnpubsub/daemonize.py

* tools/server-side/svnpubsub/svnwcsub.py

(): Same. Also, import the stats module where needed.

  1. … 14 more files in changeset.
Following up on r1702237, fix function name in test code.

* subversion/tests/cmdline/revert_tests.py

(moved_dir_partial): Rename to...

(revert_moved_dir_partial): ... this as expected by test_list.

Following up on r1702237, remove UTF-8 BOM.

* subversion/tests/cmdline/revert_tests.py

Remove BOM.

Resolve a possible segfault (caused by using an uninitialized variable)

on reverting the root of a move but not its descendants.

Found by: TortoiseSVN dump

ivan

(Reproduction recipe and patch by me)

You probably need valgrind or some debug diagnostics (such as used by the

windows maintainer build) to find the problem.

* subversion/libsvn_wc/wc_db.c

(revert_maybe_raise_moved_away): New function, extracted from...

(op_revert_txn): ... here. Reduce scope of some variables.

* subversion/tests/cmdline/revert_tests.py

(moved_dir_partial): New function.

(test_list): Add revert_upwards.

  1. … 1 more file in changeset.
Following up on r1662794, make the checkout/switch/update logic in the python

test framework use the standard run_and_verify_svn stderr handling, and replace

the 4 singleton arguments of these functions with a completely optional

extra_files args (which handles the only current usage in a better way than

before), that verifies that these files are actually there.

In one case we still installed a singleton handler to allow extra files,

but found no files since the introduction of tree conflicts. (Probably 1.6.0)

The new code would return failure because the files are not here.

* subversion/tests/cmdline/authz_tests.py

* subversion/tests/cmdline/basic_tests.py

* subversion/tests/cmdline/changelist_tests.py

* subversion/tests/cmdline/checkout_tests.py

* subversion/tests/cmdline/copy_tests.py

* subversion/tests/cmdline/depth_tests.py

* subversion/tests/cmdline/diff_tests.py

* subversion/tests/cmdline/externals_tests.py

* subversion/tests/cmdline/import_tests.py

* subversion/tests/cmdline/info_tests.py

* subversion/tests/cmdline/input_validation_tests.py

* subversion/tests/cmdline/log_tests.py

* subversion/tests/cmdline/merge_authz_tests.py

* subversion/tests/cmdline/merge_automatic_tests.py

* subversion/tests/cmdline/merge_reintegrate_tests.py

* subversion/tests/cmdline/merge_tests.py

* subversion/tests/cmdline/merge_tree_conflict_tests.py

* subversion/tests/cmdline/move_tests.py

* subversion/tests/cmdline/prop_tests.py

* subversion/tests/cmdline/resolve_tests.py

* subversion/tests/cmdline/revert_tests.py

* subversion/tests/cmdline/special_tests.py

* subversion/tests/cmdline/stat_tests.py

* subversion/tests/cmdline/svnversion_tests.py

* subversion/tests/cmdline/switch_tests.py

* subversion/tests/cmdline/trans_tests.py

* subversion/tests/cmdline/tree_conflict_tests.py

* subversion/tests/cmdline/update_tests.py

* subversion/tests/cmdline/wc_tests.py

(*): Update caller. Simplify commands where possible. Tried not to

introduce behavior changes.

* subversion/tests/cmdline/svntest/actions.py

(run_and_verify_checkout2,

run_and_verify_checkout): Remove several arguments. Add dynamic keywords.

Update caller.

(verify_update): Define extra_files. Forward to disk comparison.

(verify_disk): If extra_files is set, set singleton handlers and a (new)

done handler. If needed we can add other tests this way.

(run_and_verify_update,

run_and_verify_merge): Remove some arguments. Add dynamic keywords.

Use run_and_verify_svn.

(run_and_verify_patch): Add dynamic keyword support.

(run_and_verify_switch,

run_and_verify_commit): Remove some arguments. Add dynamic keywords.

Use run_and_verify_svn.

(build_greek_tree_conflicts): Update caller.

* subversion/tests/cmdline/svntest/deeptrees.py

(deep_trees_run_tests_scheme_for_update,

deep_trees_skipping_on_update,

deep_trees_run_tests_scheme_for_switch,

deep_trees_run_tests_scheme_for_merge,

do_routine_switching): Update caller. Convert None error to [].

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

(TestFactory): Update templates.

* subversion/tests/cmdline/svntest/mergetrees.py

(set_up_dir_replace): Update caller.

* subversion/tests/cmdline/svntest/tree.py

(detect_conflict_files_done): New function.

  1. … 33 more files in changeset.
Make the standard commit logic in the test suite a bit stricter and easier

to use by using the existing run_and_verify_svn() infrastructure for

verifying the error result. When no arguments are passed, pass the directory

used for verifying the result, just like run_and_verify_update() and its

variants.

We already removed an argument from this function for 1.9, so cleaning it

up a bit more won't affect backporting.

* subversion/test/cmdline/authz_tests.py

* subversion/test/cmdline/basic_tests.py

* subversion/test/cmdline/blame_tests.py

* subversion/test/cmdline/changelist_tests.py

* subversion/test/cmdline/checkout_tests.py

* subversion/test/cmdline/commit_tests.py

* subversion/test/cmdline/copy_tests.py

* subversion/test/cmdline/depth_tests.py

* subversion/test/cmdline/diff_tests.py

* subversion/test/cmdline/entries_tests.py

* subversion/test/cmdline/export_tests.py

* subversion/test/cmdline/externals_tests.py

* subversion/test/cmdline/history_tests.py

* subversion/test/cmdline/lock_tests.py

* subversion/test/cmdline/log_tests.py

* subversion/test/cmdline/merge_authz_tests.py

* subversion/test/cmdline/merge_reintegrate_tests.py

* subversion/test/cmdline/merge_tests.py

* subversion/test/cmdline/merge_tree_conflict_tests.py

* subversion/test/cmdline/mergeinfo_tests.py

* subversion/test/cmdline/patch_tests.py

* subversion/test/cmdline/prop_tests.py

* subversion/test/cmdline/relocate_tests.py

* subversion/test/cmdline/resolve_tests.py

* subversion/test/cmdline/revert_tests.py

* subversion/test/cmdline/schedule_tests.py

* subversion/test/cmdline/special_tests.py

* subversion/test/cmdline/stat_tests.py

* subversion/test/cmdline/svnauthz_tests.py

* subversion/test/cmdline/svnlook_tests.py

* subversion/test/cmdline/svnversion_tests.py

* subversion/test/cmdline/switch_tests.py

* subversion/test/cmdline/trans_tests.py

* subversion/test/cmdline/tree_conflict_tests.py

* subversion/test/cmdline/update_tests.py

Tweak tests. Remove unneeded args if possible without changing behavior.

* subversion/test/cmdline/svntest/actions.py

(run_and_verify_commit): Update error argument name and behavior. Supply

default args if none ar provided.

(inject_conflict_into_wc,

build_greek_tree_conflicts): Update caller.

* subversion/test/cmdline/svntest/deeptrees.py

(deep_trees_run_tests_scheme_for_update,

deep_trees_run_tests_scheme_for_switch,

deep_trees_run_tests_scheme_for_merge,

commit_routine_switching): Update caller.

* subversion/test/cmdline/svntest/mergetrees.py

(set_up_dir_replace,

set_up_branch): Update caller.

  1. … 37 more files in changeset.
Fix the most acute problems in the regression in the entries compatibility

code that made it impossible to read the 'parent stubs' of nodes when there

is an obstructing working copy. This fixes the status/entry run in the

revert test that didn't work with entries, and a case in the entries

compatibility tests that only happened to work, just because the child

directory was similar to what was recorded in the ancestor.

This makes entries.c include the private wc_db api, which is ugly.

But I think it is a better solution than using sqlite directly,

and hardcoding wc_id 1 as we did before.

There are still a few remaining cases where we read info from the

obstructing working copy, but these don't affect the creation

of the stub fields.

* subversion/libsvn_wc/entries.c

(SVN_WC__I_AM_WC_DB): Define.

(includes): Add wc_db_private.h

(get_info_for_deleted,

read_one_entry): Add wcroot, relpath arguments as alternate

for the still passed db, abspath. Use wc_db internal

functions where available to be able to read below obstruction

when reading from the parent dir.

(read_entries_new): Pass wcroot, dir_relpath.

(read_entry_pair): Rename to...

(read_entry_pair_txn): ... this and pass wcroot, dir_relpath.

(read_entry_pair): New wrapper function. Obtaining wcroot and lock.

(read_entries): Rename wcroot_* arguments to dir_* as wcroot isn't

the right name in wc-ng. Obtain wcroot instance and use wc_db lock

around call.

(svn_wc__entries_read_internal): Remove sqlite level lock, as read

entries obtains a better lock itself.

* subversion/libsvn_wc/wc_db.c

(scan_deletion_txn): Rename to..

(scan_deletion): ... this.

(svn_wc__db_scan_deletion_internal): New function.

(svn_wc__db_scan_deletion): Update caller.

(get_info_for_copy,

db_read_repos_info,

relocate_txn): Update caller.

(svn_wc__db_scan_addition_internal): New function.

* subversion/libsvn_wc/wc_db_private.h

(svn_wc__db_scan_addition_internal,

svn_wc__db_scan_deletion_internal): New function.

* subversion/tests/cmdline/revert_tests.py

(revert_obstructing_wc): Expect status to work normally.

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

(test_stubs): Add assertion that would have failed before this patch.

  1. … 4 more files in changeset.
* subversion/tests/cmdline/revert_tests.py

(revert_obstructing_wc): Run status, but no entries comparison.

* subversion/tests/cmdline/svntest/actions.py

(run_and_verify_status): After removing 4 optional arguments in r1662327,

add one new one to explicitly disable the entries comparison.

  1. … 1 more file in changeset.
Checkpoint initial work on a better fix for entries code missing

obstructing working copies.

* subversion/tests/cmdline/entries-dump.c

(tree_dump_dir): Don't step into obstructing working copies.

* subversion/tests/cmdline/revert_tests.py

(revert_obstructing_wc): Disable status processing, to avoid

marking the original issue XFail (as that works properly).

  1. … 1 more file in changeset.
Make the python test framework's standard status and entries processing

capable of handling the few remaining cases where we still used the

old system.

* subversion/tests/cmdline/revert_tests.py

(revert_obstructing_wc): Remove hack, obsoleted by single-db entries-dump.

* subversion/tests/cmdline/svntest/actions.py

(run_and_verify_status,

run_and_verify_unquiet_status): Only accept wc trees.

* subversion/tests/cmdline/svntest/wc.py

(State.add_state):

Add optional strict mode that doesn't follow normal path join rules.

(tweak_for_entries_compare): Allow specifying that a path is a file, to

avoid checking deeper status entries in the comparison. This is needed

for a followup patch.

(from_entries): Properly handle the case where just a Windows drive letter

(e.g. 'H:') is passed as a path, by using special path join rules.

(StateItem.__init__): Declare entry_kind.

* subversion/tests/cmdline/update_tests.py

(update_wc_on_windows_drive): Create proper wc tree.

  1. … 3 more files in changeset.
Remove the 'message' argument from the test suite's run_and_verify_*()

functions, because it is largely pointless.

Enough context information is available by other means, and it wasn't being

displayed for stdout mismatch which is the most common failure mode but only

for exit-code mismatch, and most callers pass 'None' anyway. It cluttered

the call sites.

* subversion/tests/cmdline/svntest/actions.py

(run_and_verify_atomic_ra_revprop_change,

run_and_verify_svnlook, run_and_verify_svnlook2,

run_and_verify_svnadmin, run_and_verify_svnadmin2,

run_and_verify_svnversion, run_and_verify_svnversion2,

run_and_verify_svn, run_and_verify_svn2,

run_and_verify_svnmucc, run_and_verify_svnmucc2,

run_and_verify_atomic_ra_revprop_change,

run_and_verify_svnauthz,

run_and_verify_log_xml): Remove 'message' parameter.

(guarantee_greek_repository,

run_and_verify_dump): Adjust calls.

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

Adjust calls.

* subversion/tests/cmdline/*_tests.py

Adjust calls.

  1. … 58 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.
Skip tests that are known to depend on server-side mergeinfo support

in 1.3 and 1.4 compat mode.

* subversion/tests/cmdline/blame_tests.py

(blame_output_after_merge): Skip if the server does not support mergeinfo.

* subversion/tests/cmdline/externals_tests.py

(merge_target_with_externals): Same.

* subversion/tests/cmdline/log_tests.py

(merge_sensitive_log_copied_path_inherited_mergeinfo): Same.

* subversion/tests/cmdline/mergeinfo_tests.py

(mergeinfo,

mergeinfo_on_unknown_url,

non_inheritable_mergeinfo): Same.

* subversion/tests/cmdline/merge_reintegrate_tests.py

(reintegrate_with_rename,

reintegrate_branch_never_merged_to,

reintegrate_fail_on_modified_wc,

reintegrate_fail_on_mixed_rev_wc,

reintegrate_fail_on_switched_wc,

reintegrate_on_shallow_wc,

merge_file_with_space_in_its_path,

reintegrate_with_self_referential_mergeinfo,

added_subtrees_with_mergeinfo_break_reintegrate,

two_URL_merge_removes_valid_mergeinfo_from_target,

reintegrate_creates_bogus_mergeinfo,

no_source_subtree_mergeinfo,

reintegrate_symlink_deletion,

no_op_reintegrate,

renamed_branch_reintegrate): Same.

* subversion/tests/cmdline/merge_tests.py

(merge_with_implicit_target_using_r,

merge_range_predates_history,

commit_to_subtree_added_by_merge,

copy_then_replace_via_merge,

skipped_files_get_correct_mergeinfo,

merge_into_wc_for_deleted_branch,

record_only_merge_creates_self_referential_mergeinfo,

merge_with_os_deleted_subtrees,

merge_change_to_file_with_executable,

merge_properties_on_adds): Same.

* subversion/tests/cmdline/resolve_tests.py

(resolved_on_deleted_item): Same.

* subversion/tests/cmdline/revert_tests.py

(revert_empty_actual,

revert_empty_actual_recursive): Same.

* subversion/tests/cmdline/update_tests.py

(mergeinfo_updates_merge_with_local_mods): Same.

  1. … 8 more files in changeset.
Resolve the issue reported as issue #4436, where a revert of a specific

move case fails. Add XFail tests for a related case where a move is

accidentally turned into a copy.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_MOVED_OUTSIDE): Add op_depth column to result.

* subversion/libsvn_wc/wc_db.c

[wc_db.c was accidentally ommitted from this commit]

(db_base_remove): Extend TODO comment.

(op_revert_txn,

op_revert_recursive_txn): Pass the op-depth of the row to revert.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_resolve_break_moved_away): Document definition failure.

* subversion/libsvn_wc/wc_db_private.h

(svn_wc__db_resolve_break_moved_away_internal): Document function and add

argument.

* subversion/libsvn_wc/wc_db_update_move.c

(svn_wc__db_resolve_break_moved_away_internal): Use an explicit op-depth.

* subversion/tests/cmdline/revert_tests.py

(revert_move): Remove test that now only duplicates a test in

op-depth-tests.c that is more thorough.

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

(move_child_to_parent_revert): Verify result after reverting.

(move_abspath_more_than_once): New test.

(test_funcs): Remove XFail marker from move_child_to_parent_revert and

add move_abspath_more_than_once as XFail.

  1. … 5 more files in changeset.
* subversion/tests/cmdline/revert_tests.py

(revert_move): Following up on r1530763, simplify testcase. A mixed revision

working copy is not necessary to get this segfault.

* subversion/tests/cmdline/revert_tests.py

(revert_move): Add new regression test for issue #4436, which currently

triggers a segfault.

(test_list): Add revert_move.

In the python tests: Replace the most trivial 'commit the whole working copy'

calls that don't perform verifications on the result by a call to

sbox.simple_commit() that at least verifies that a new revision is created.

This way we detect some commit handling breakage (such as timestamp problems)

sooner.

* subversion/tests/cmdline/autoprop_tests.py

(svn_prop_inheritable_autoprops_unversioned_subtrees_versioned_target):

* subversion/tests/cmdline/blame_tests.py

(merge_sensitive_blame_and_empty_mergeinfo):

* subversion/tests/cmdline/commit_tests.py

(commit_out_of_date_deletions):

* subversion/tests/cmdline/history_tests.py

(cat_avoids_false_identities):

* subversion/tests/cmdline/lock_tests.py

(verify_path_escaping):

* subversion/tests/cmdline/log_tests.py

(merge_sensitive_log_reverse_merges,

merge_sensitive_log_ignores_cyclic_merges,

merge_sensitive_log_copied_path_inherited_mergeinfo):

* subversion/tests/cmdline/merge_authz_tests.py

(reintegrate_fails_if_no_root_access):

* subversion/tests/cmdline/merge_reintegrate_tests.py

(reintegrate_replaced_source):

* subversion/tests/cmdline/merge_tests.py

(merge_range_predates_history,

foreign_repos,

foreign_repos_uuid,

foreign_repos_2_url,

copy_then_replace_via_merge,

merge_source_with_replacement,

reverse_merge_with_rename):

* subversion/tests/cmdline/resolve_tests.py

(theirs_conflict_in_subdir):

* subversion/tests/cmdline/revert_tests.py

(revert_add_over_not_present_dir):

* subversion/tests/cmdline/stat_tests.py

(status_depth_update):

* subversion/tests/cmdline/svnadmin_tests.py

(dump_copied_dir,

dump_move_dir_modify_child,

recover_fsfs,

fsfs_recover_handle_missing_revs_or_revprops_file):

* subversion/tests/cmdline/switch_tests.py

(nonrecursive_switching):

* subversion/tests/cmdline/tree_conflict_tests.py

(up_add_onto_add_revert):

Use sandbox.simple_commit() instead of

main.run_svn(None, 'ci', ..., wc_dir) with no verifications.

  1. … 14 more files in changeset.
* **/**

Run tools/dev/remove-trailing-whitespace.sh to remove all trailing whitespace

before we branch 1.8, like we did before creating previous branches.

No functional changes.

  1. … 199 more files in changeset.
Change the UnorderedOutput test suite class to require an exact one-to-one

match of all the lines, and no longer ignore duplicate lines.

Most tests were already passing the exact set of expected lines. Mark one

diff test as XFail where the diff is producing unexpected duplicate lines.

Adjust some tests to provide the right number of duplicate expected lines.

* subversion/tests/cmdline/svntest/verify.py

(UnorderedOutput): Require an exact one-to-one match of all the lines, and

no longer ignore duplicate expected and actual lines.

* subversion/tests/cmdline/diff_tests.py

(diff_two_working_copies): Mark as XFail, as the diff produces duplicate

two headers for 'A/D/G/pi' and we don't expect that.

* subversion/tests/cmdline/externals_tests.py

(url_to_wc_copy_of_externals): Include all the required duplicates in the

expected output.

* subversion/tests/cmdline/prop_tests.py

(propget_redirection): Include all the required duplicates in the expected

output.

* subversion/tests/cmdline/revert_tests.py

(revert_tree_conflicts_with_replacements): Remove an accidental duplicate

line from the expected output.

  1. … 4 more files in changeset.
Remove unneeded conversions to old_tree in several wrappers of

run_and_verify_status. This wrapping as old_tree made it impossible to run the

entries validation on these trees.

Fix the fallout of this change.

* subversion/libsvn_wc/entries.c

(get_info_for_deleted): Allow obtaining the lock token.

(read_one_entry): Update caller. (Found via lock_tests.py)

* subversion/tests/cmdline/commit_tests.py

(commit_nonrecursive): Use '/' in the trees, not os.sep as that breaks the

entries tests.

* subversion/tests/cmdline/copy_tests.py

(move_moved_file_and_dir): Use canonical path form.

* subversion/tests/cmdline/entries-dump.c

(entries_dump): Provide file_external boolean. (Needed for externals tests)

* subversion/tests/cmdline/merge_tests.py

(merge_into_missing): Remove invalid entry_rev.

(merge_away_subtrees_noninheritable_ranges): Use canonical path.

* subversion/tests/cmdline/patch_tests.py

(patch_absolute_paths,

patch_offset,

patch_prop_offset,

patch_delete_and_skip,

patch_git_with_index_line): Use canonical path form.

* subversion/tests/cmdline/revert_tests.py

(revert_obstructing_wc): Avoid entries comparision.

* subversion/tests/cmdline/svntest/actions.py

(run_and_verify_checkout2,

verify_update,

run_and_verify_commit): Remove unneeded conversion.

* subversion/tests/cmdline/svntest/wc.py

(add_state): Don't add root/ item for the root of the added tree.

(tweak_for_entries_compare): Handle file externals. Add entry_copy support.

Assume that we can't calculate switched for the root of the status walk

from the python code. Ignore tree conflicts.

(from_entries): Skip excluded nodes. Set switched to 'X' for file externals.

(StateItem): Add entry_copy setting.

(repos_join): Fix 'G:/' 'node' join. (Needed for update_tests.py)

* subversion/tests/cmdline/switch_tests.py

(switch_with_obstructing_local_adds): Update entry expectations for

obstructed.

(switch_to_root): Pass the right path for path calculations.

* subversion/tests/cmdline/update_tests.py

(update_wc_on_windows_drive): Tweak paths. Disable entry dump for 'A:mu' style

paths.

(update_copied_from_replaced_and_changed): Use canonical paths.

(update_edit_delete_obstruction): Set entry info for obstructed node.

* subversion/tests/cmdline/update_tests.py

(update_wc_on_windows_drive,

update_copied_from_replaced_and_changed): Use '/' in paths.

(update_edit_delete_obstruction): Update obstruction assumptions for entries.

  1. … 10 more files in changeset.
Replace many local reimplementations of svntest.actions.verify_disk() with

a call to this standard function.

* subversion/tests/cmdline/changelist_tests.py

(propmods_with_changelists):

* subversion/tests/cmdline/copy_tests.py

(copy_replace_with_props,

revision_kinds_local_source,

copy_added_paths_with_props,

copy_peg_rev_local_files,

copy_peg_rev_local_dirs):

* subversion/tests/cmdline/merge_tests.py

(merge_added_subtree):

* subversion/tests/cmdline/prop_tests.py

(make_local_props,

props_on_replaced_file,

rm_of_replaced_file,

obstructed_subdirs):

* subversion/tests/cmdline/svnadmin_tests.py

(load_and_verify_dumpstream):

* subversion/tests/cmdline/revert_tests.py

(revert_replacement_with_props,

revert_file_merge_replace_with_history,

revert_after_second_replace,

revert_with_unversioned_targets):

Replace local code by call to verify_disk()

* subversion/tests/cmdline/svntest/actions.py

(run_and_verify_checkout2): Replace local reimplementation with call to

verify_disk().

(verify_update): Extract disk verification code from here and place it into

(verify_disk): .. this function, that used to call verify_update.

  1. … 6 more files in changeset.
* subversion/tests/cmdline/revert_tests.py

(revert_moved_file): Fix expectations.

Extend the test suite status processing to read the moved to and moved from

lines, and assert their values in the test suite.

* subversion/tests/cmdline/copy_tests.py

(*): Update expected results.

* subversion/tests/cmdline/patch_tests.py

(*): Update expected results.

* subversion/tests/cmdline/revert_tests.py

(*): Update expected results.

* subversion/tests/cmdline/svntest/actions.py

(run_and_verify_status,

run_and_verify_unquiet_status): Pass wc_dir.

* subversion/tests/cmdline/svntest/tree.py

(build_tree_from_status): Forward wc_dir.

* subversion/tests/cmdline/svntest/wc.py

(_re_parse_status_ex): New regex.

(normalize): Add TODO.

(from_status): Add moved to and from to the last read node. Add optional

argument to skip common prefix.

(StateItem): Add moved_from and moved_to support.

* subversion/tests/cmdline/update_tests.py

(*): Update expected results.

  1. … 6 more files in changeset.
Remove support for running some tests on a per-dir workingcopy db from

tests that still have separate behavior for pre and post 1.7.

* subversion/tests/cmdline/copy_tests.py

(move_dir_back_and_forth): Remove multi db code.

* subversion/tests/cmdline/depth_tests.py

(make_depth_tree_conflicts): Remove multi db code.

* subversion/tests/cmdline/entries_tests.py

(obstructed_entries): Remove multi db code.

* subversion/tests/cmdline/lock_tests.py

(lock_switched_files,

lock_twice_in_one_wc): Remove multi db code.

* subversion/tests/cmdline/merge_tests.py

(merge_into_missing): Remove multi db expected results.

* subversion/tests/cmdline/merge_tree_conflict_tests.py

(mergeinfo_recording_in_skipped_merge,

tree_conflicts_merge_edit_onto_missing,

tree_conflicts_merge_del_onto_missing): Update expected results.

* subversion/tests/cmdline/patch_tests.py

(patch_add_new_dir,

patch_remove_empty_dirs): Update expected result.

* subversion/tests/cmdline/relocate_tests.py

(relocate_deleted_missing_copied): Update expected result.

* subversion/tests/cmdline/resolved_tests.py

(resolved_on_wc_root): Update expected result.

* subversion/tests/cmdline/revert_tests.py

(status_of_missing_dir_after_revert,

status_of_missing_dir_after_revert_replaced_with_history_dir):

Update expected result.

* subversion/tests/cmdline/stat_tests.py

(status_type_change,

status_type_change_to_symlink,

status_missing_dir,

status_dash_u_type_change): Update expected result.

* subversion/tests/cmdline/switch_tests.py

(tree_conflicts_on_switch_1_1,

tree_conflicts_on_switch_1_2): Update expected results.

* subversion/tests/cmdline/update_tests.py

(update_missing): Expect restores instead of adds.

(update_deleted_missing_dir,

another_hudson_problem): Update expected results.

(nested_in_read_only): Remove test.

(tree_conflicts_on_update_1_1,

tree_conflicts_on_update_1_2): Update expected results.

  1. … 12 more files in changeset.
Python doesn't need a ';' after a function call, so remove the unneeded

usages.

* subversion/tests/cmdline/authz_tests.py

* subversion/tests/cmdline/basic_tests.py

* subversion/tests/cmdline/copy_tests.py

* subversion/tests/cmdline/depth_tests.py

* subversion/tests/cmdline/diff_tests.py

* subversion/tests/cmdline/history_tests.py

* subversion/tests/cmdline/lock_tests.py

* subversion/tests/cmdline/log_tests.py

* subversion/tests/cmdline/merge_reintegrate_tests.py

* subversion/tests/cmdline/merge_tests.py

* subversion/tests/cmdline/revert_tests.py

* subversion/tests/cmdline/special_tests.py

* subversion/tests/cmdline/svnadmin_tests.py

* subversion/tests/cmdline/switch_tests.py

* subversion/tests/cmdline/update_tests.py

Remove unneeded semicolons. No functional changes.

Automatic replacement with manual review and a few reversals.

  1. … 14 more files in changeset.
Resolve issue #4168, by detecting working copy roots when handling the final

step of reverts.

* subversion/libsvn_wc/adm_ops.c

(revert_restore): Add revert_root argument and detect obstructing working

copies if not reverting explicit targets. Update recursion

(revert_internal): Update caller.

* subversion/tests/cmdline/revert_tests.py

(revert_obstructing_wc): Update expected result.

  1. … 1 more file in changeset.
Add regression test for issue #4168, which is caused by accessing the wrong

wc.db file.

* subversion/tests/cmdline/revert_tests.py

(revert_obstructing_wc): New function.

(test_list): Add test.