Checkout Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.
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.
Following up on a list of recent blame changes, make the revisions in the

'kidney blame' make a bit more sense.

The revisions we show in blame are the revisions in which something

changed... but the revision we get in the callback is the revision of

which we have the actual file data.

To make things match up the way you would expect we have to delay reporting

the revisions until we receive the next delta.

This patch reverts r1661202, and implements that behavior.

* subversion/libsvn_client/blame.c

(file_rev_baton): Add boolean and revision state.

(file_rev_handler): Remove calculating the highest revision.

Store the expected information in the revision baton, by

delaying everything a bit. Reinstate old assertion.

(svn_client_blame5): Remove ignore-revision code. Initialize baton.

* subversion/tests/cmdline/blame_tests.py

(blame_youngest_to_oldest,

blame_reverse_no_change): Update expected results.

  1. … 1 more file in changeset.
When producing blame information backwards we don't have an obvious revision

outside the version range where we don't want to produce information for,

which representst the file at the start of the range.

I'm guessing things will be more sane if we collect the highest revision

within the range and then filter the information... this is what the file

looks like at the end of the range.

* subversion/libsvn_client/blame.c

(file_rev_baton): Add variable.

(file_rev_handler): Track highest revision.

(svn_client_blame5): Determine if there is a specific revision we should

shouldn't produce details for.

* subversion/tests/cmdline/blame_tests.py

(blame_reverse_no_change): Update expected result. Extend.

  1. … 1 more file in changeset.
Following up on r1661120 and a whole lot of previous attempts fix issue #4467.

* subversion/libsvn_client/blame.c

(file_rev_handler): Get rid of assertion that doesn't really make sense now.

(It would have required an additional exception that would let half the

interesting cases get through)

* subversion/tests/cmdline/blame_tests.py

(blame_reverse_no_change): Remove XFail marker. Add comments.

  1. … 1 more file in changeset.
Add a regression test for issue #4467, to finally get to the bottom

of this problem.

* subversion/tests/cmdline/blame_tests.py

(blame_reverse_no_change): New function.

(test_list): Add blame_reverse_no_change.

Following up on r1660969 and r1660975, reinstate an additional

condition on the check whether we are blaming the initial

revision.

* subversion/libsv* subversion/libsvn_client/blame.c

(file_rev_handler): Disable check when we expect merged

revisions, not just for merged revisions... as there

could be a merged revision before the first revision.

* subversion/tests/cmdline/blame_tests.py

(blame_output_after_merge): Expect that merged revisions are

reported as such, even when they are outside the

passed range.

(blame_youngest_to_oldest): Extend test.

  1. … 1 more file in changeset.
Apply the standard pre-branch whitespace cleanup via

tools/dev/remove-trailing-whitespace.zsh

There should be no functional changes.

* .ycm_extra_conf.py

* build/generator/gen_win.py

* build/generator/gen_win_dependencies.py

* subversion/bindings/javahl/native/EditorProxy.h

* subversion/bindings/javahl/native/StateReporter.cpp

* subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h

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

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c

* subversion/bindings/swig/ruby/test/test_fs.rb

* subversion/bindings/swig/ruby/test/util.rb

* subversion/bindings/swig/ruby/test/windows_util.rb

* subversion/include/private/svn_fs_fs_private.h

* subversion/include/private/svn_packed_data.h

* subversion/include/private/svn_repos_private.h

* subversion/include/private/svn_sorts_private.h

* subversion/include/private/svn_subr_private.h

* subversion/include/private/svn_wc_private.h

* subversion/include/svn_auth.h

* subversion/include/svn_cache_config.h

* subversion/include/svn_client.h

* subversion/include/svn_cmdline.h

* subversion/include/svn_diff.h

* subversion/include/svn_fs.h

* subversion/include/svn_io.h

* subversion/include/svn_ra.h

* subversion/include/svn_repos.h

* subversion/include/svn_string.h

* subversion/libsvn_client/blame.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_client/log.c

* subversion/libsvn_client/patch.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_client/update.c

* subversion/libsvn_delta/svndiff.c

* subversion/libsvn_diff/parse-diff.c

* subversion/libsvn_fs/fs-loader.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_fs/cached_data.c

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/hotcopy.c

* subversion/libsvn_fs_fs/id.c

* subversion/libsvn_fs_fs/index.c

* subversion/libsvn_fs_fs/index.h

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/low_level.c

* subversion/libsvn_fs_fs/low_level.h

* subversion/libsvn_fs_fs/pack.c

* subversion/libsvn_fs_fs/recovery.c

* subversion/libsvn_fs_fs/rev_file.c

* subversion/libsvn_fs_fs/revprops.c

* subversion/libsvn_fs_fs/revprops.h

* subversion/libsvn_fs_fs/stats.c

* subversion/libsvn_fs_fs/transaction.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_fs_fs/verify.c

* subversion/libsvn_fs_x/cached_data.c

* subversion/libsvn_fs_x/changes.c

* subversion/libsvn_fs_x/dag.h

* subversion/libsvn_fs_x/fs.h

* subversion/libsvn_fs_x/fs_id.c

* subversion/libsvn_fs_x/fs_x.c

* subversion/libsvn_fs_x/hotcopy.c

* subversion/libsvn_fs_x/hotcopy.h

* subversion/libsvn_fs_x/index.c

* subversion/libsvn_fs_x/index.h

* subversion/libsvn_fs_x/lock.c

* subversion/libsvn_fs_x/lock.h

* subversion/libsvn_fs_x/low_level.c

* subversion/libsvn_fs_x/low_level.h

* subversion/libsvn_fs_x/noderevs.c

* subversion/libsvn_fs_x/pack.c

* subversion/libsvn_fs_x/reps.c

* subversion/libsvn_fs_x/rev_file.c

* subversion/libsvn_fs_x/revprops.c

* subversion/libsvn_fs_x/revprops.h

* subversion/libsvn_fs_x/string_table.c

* subversion/libsvn_fs_x/string_table.h

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_fs_x/tree.c

* subversion/libsvn_fs_x/util.c

* subversion/libsvn_fs_x/verify.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_serf/ra_serf.h

* subversion/libsvn_ra_serf/serf.c

* subversion/libsvn_ra_serf/update.c

* subversion/libsvn_ra_serf/util.c

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_repos/authz_pool.c

* subversion/libsvn_repos/config_pool.c

* subversion/libsvn_repos/dump.c

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_repos/log.c

* subversion/libsvn_subr/bit_array.c

* subversion/libsvn_subr/cache-membuffer.c

* subversion/libsvn_subr/config.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_subr/fnv1a.c

* subversion/libsvn_subr/gpg_agent.c

* subversion/libsvn_subr/hash.c

* subversion/libsvn_subr/io.c

* subversion/libsvn_subr/object_pool.c

* subversion/libsvn_subr/packed_data.c

* subversion/libsvn_subr/prefix_string.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_subr/sqlite.c

* subversion/libsvn_subr/subst.c

* subversion/libsvn_subr/sysinfo.c

* subversion/libsvn_subr/types.c

* subversion/libsvn_subr/utf.c

* subversion/libsvn_subr/utf8proc/utf8proc_data.c

* subversion/libsvn_subr/x509info.c

* subversion/libsvn_wc/diff.h

* subversion/libsvn_wc/props.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/wc.h

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db.h

* subversion/mod_dav_svn/lock.c

* subversion/mod_dav_svn/mod_dav_svn.c

* subversion/mod_dav_svn/status.c

* subversion/svn/auth-cmd.c

* subversion/svn/info-cmd.c

* subversion/svn/mergeinfo-cmd.c

* subversion/svn/notify.c

* subversion/svn/propget-cmd.c

* subversion/svn/svn.c

* subversion/svnadmin/svnadmin.c

* subversion/svnserve/logger.c

* subversion/svnserve/serve.c

* subversion/svnserve/server.h

* subversion/svnserve/svnserve.c

* subversion/tests/cmdline/blame_tests.py

* subversion/tests/cmdline/checkout_tests.py

* subversion/tests/cmdline/commit_tests.py

* subversion/tests/cmdline/export_tests.py

* subversion/tests/cmdline/externals_tests.py

* subversion/tests/cmdline/lock_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/redirect_tests.py

* subversion/tests/cmdline/stat_tests.py

* subversion/tests/cmdline/svnadmin_tests.py

* subversion/tests/cmdline/switch_tests.py

* subversion/tests/cmdline/update_tests.py

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

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

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

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

* subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-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_subr/cache-test.c

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

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

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

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

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

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

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

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

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

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

* subversion/tests/svn_test_main.c

* tools/dev/benchmarks/RepoPerf/copy_repo.py

* tools/dev/benchmarks/RepoPerf/win_repo_bench.py

* tools/dev/build-svn-deps-win.pl

* tools/dev/fsfs-access-map.c

* tools/dev/po-merge.py

* tools/dev/x509-parser.c

* tools/diff/diff.c

* tools/dist/backport.pl

* tools/dist/backport_tests.py

* tools/hook-scripts/mailer/mailer.py

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

* win-tests.py

Remove unneeded whitespace via script.

  1. … 184 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.
* subversion/tests/cmdline/blame_tests.py

(blame_multiple_targets): Simplify test and reinstante old purpose of

checking the internal error codes.

Make the 'Committing revision...' notification visible for URL URL copies,

where it was explicitly hidden before... which was the standard behavior

before we added url support for notifications a few years ago.

The behavior was made explicit when the notification setup was generalized

for all svn commands.

* subversion/svn/copy-cmd.c

(svn_cl__copy): Use standard behavior for url-url copies.

* subversion/tests/cmdline/blame_tests.py

(blame_output_after_merge): Expect notification.

* subversion/tests/cmdline/copy_tests.py

(url_copy_parent_into_child): Expect notification.

* subversion/tests/cmdline/merge_tests.py

(simple_property_merges,

merge_old_and_new_revs_from_renamed_file,

merge_with_auto_rev_range_detection,

merge_added_subtree,

dont_merge_revs_into_subtree_that_predate_it,

set_up_renamed_subtree,

set_up_natural_history_gap): Expect notification.

* subversion/tests/cmdline/merge_tree_conflict_tests.py

(merge_replace_setup): Expect notification.

* subversion/tests/cmdline/switch_tests.py

(delete_subdir,

obstructed_switch,

refresh_read_only_attribute,

tolerate_local_mods): Expect notification.

  1. … 5 more files in changeset.
Cleanup a bit of svn notification code and remove an unneeded blank line from

the svn commit output that was caused by the side effects of this code.

Update test results for this changes and include a few cases of the related

r1606182 change.

* subversion/svn/notify.c

(notify_body): Write the newline here...

* subversion/svn/util.c

(svn_cl__print_commit_info): ...Instead of waiting for this code.

* subversion/tests/cmdline/blame_tests.py

(blame_output_after_merge): Update expected result.

* subversion/tests/cmdline/copy_tests.py

(url_copy_parent_into_child): Update expected result.

* subversion/tests/cmdline/merge_tests.py

(simple_property_merges,

merge_old_and_new_revs_from_renamed_file,

merge_with_auto_rev_range_detection,

merge_source_normalization_and_subtree_merges,

merge_added_subtree,

dont_merge_revs_into_subtree_that_predate_it,

set_up_renamed_subtree,

no_self_referential_filtering_on_added_path,

merge_range_prior_to_rename_source_existence,

set_up_natural_history_gap): Update expected results.

* subversion/tests/cmdline/merge_tree_conflict_tests.py

(merge_replace_setup): Update expected results.

* subversion/tests/cmdline/switch_tests.py

(delete_subdir): Update expected results.

  1. … 6 more files in changeset.
Follow-up to r1604179: Print "Committing transaction" progress notification

for tree changes only commits.

Found by: julianfoad

* subversion/svn/notify.c

(notify_body): Unconditionally print "Committing transaction" progress

notification.

* subversion/tests/cmdline/basic_tests.py

* subversion/tests/cmdline/blame_tests.py

* subversion/tests/cmdline/copy_tests.py

* subversion/tests/cmdline/merge_reintegrate_tests.py

* subversion/tests/cmdline/merge_tests.py

* subversion/tests/cmdline/stat_tests.py

* subversion/tests/cmdline/svnadmin_tests.py

* subversion/tests/cmdline/svnrdump_tests.py

* subversion/tests/cmdline/switch_tests.py

* subversion/tests/cmdline/update_tests.py

(basic_mkdir_url, basic_delete, blame_output_after_merge,

wc_copy_parent_into_child, basic_reintegrate,

obey_reporter_api_semantics_while_doing_subtree_merges,

update_loses_mergeinfo, merge_loses_mergeinfo,

merge_old_and_new_revs_from_renamed_dir,

merge_source_normalization_and_subtree_merges,

dont_add_mergeinfo_from_own_history,

merge_added_subtree, dont_merge_revs_into_subtree_that_predate_it,

set_up_renamed_subtree, no_self_referential_filtering_on_added_path,

merge_range_prior_to_rename_source_existence,

committed_case_only_move_and_revert, status_ignored_dir,

load_with_parent_dir, reflect_dropped_renumbered_revs,

reflect_dropped_renumbered_revs, svnrdump_load_partial_incremental_dump,

delete_subdir, failed_anchor_is_target, bad_intermediate_urls,

forced_switch_failures, another_hudson_problem, new_dir_with_spaces,

update_copy_of_old_rev): Update expected output.

  1. … 10 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.
* subversion/tests/cmdline/blame_tests.py

(blame_youngest_to_oldest): Following up on r1496882, remove Wimp marker.

* subversion/tests/cmdline/blame_tests.py

(blame_youngest_to_oldest): Mark WIMP over ra_serf.

* subversion/tests/cmdline/blame_tests.py

(blame_youngest_to_oldest): Remove XFail marker to make it easier to spot

regressions in this functionality. Adjust expectations accordingly; the

'-r M:N, M>N stops at oldest valid revision' functionality can be added

separately.

* subversion/tests/cmdline/blame_tests.py

(blame_youngest_to_oldest): Extend test to include a move in the history,

so we test that the operation is pegged correctly.

* subversion/tests/cmdline/blame_tests.py

(blame_youngest_to_oldest): Extend blame range to -r3:0, to make the test

hit a revision before the target existed. Marking XFail.

Implement kidney blame (blame -r M:N with M<N).

* subversion/libsvn_client/blame.c

(file_rev_handler): Relax checks to account for the -r M:N, M>N case.

(svn_client_blame5): if M>N, do not error, and tweak the arguments

to svn_ra_get_file_revs2() accordingly.

* subversion/tests/cmdline/blame_tests.py

(blame_youngest_to_oldest): Expect it to pass.

  1. … 1 more file in changeset.
Skip a test under older servers.

* subversion/tests/cmdline/blame_tests.py

(blame_oldest_to_youngest): Skip conditionally.

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

(server_has_reverse_get_file_revs): New predicate.

  1. … 1 more file in changeset.
Add an XFail test for 'svn blame -r 3:1' (where 3 > 1).

Not filing an issue since I plan to commit a fix soon.

* subversion/tests/cmdline/blame_tests.py

(blame_youngest_to_oldest): New test, XFail.

(test_list): Run it.

Move the merge test helper code that is used outside merge_tests.py to a new

helper file, to remove a dependency on 18500 lines of python in each test.

For now name the file after a similar file for treeconflicts. This code

should eventually be refactored to a more generic form.

* subversion/tests/cmdline/blame_tests.py

* subversion/tests/cmdline/log_tests.py

* subversion/tests/cmdline/mergeinfo_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_tree_conflict_tests.py

* subversion/tests/cmdline/resolve_tests.py

(imports): Import from svntest.mergetrees instead of merge_tests.py

* subversion/tests/cmdline/merge_tests.py

(imports): Explicitly import everything from svntest.mergetrees.

(expected_merge_output,

check_mergeinfo_recursively,

set_up_dir_replace,

set_up_branch,

local_path,

svn_mkfile,

svn_modfile,

svn_copy,

svn_merge,

noninheritable_mergeinfo_test_set_up): Move functions to ...

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

(*): .. here.

Copied from ../merge_tests.py, keeping just the 'generic' code.

  1. … 9 more files in changeset.
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.
* subversion/tests/cmdline/blame_tests.py

(blame_multiple_targets): Verify output, don't make spurious commit.

Make blame only check for binary mime-type on the final revision instead

of every revision. If the final file is not binary, but was binary in the

past, blame will now run without requiring --force. Fixes issue 2089.

* subversion/libsvn_client/blame.c

(struct file_rev_baton): Remove unused member.

(check_mimetype): Remove unused function.

(file_rev_handler): Don't check mime-type.

(svn_client_blame5): Check final mime-type.

* subversion/svn/blame-cmd.c

(svn_cl__blame): Add another non-existant file error.

* subversion/tests/cmdline/blame_tests.py

(blame_binary): Adapt to test new behaviour.

(blame_file_not_in_head, blame_multiple_targets): Tweak expected errors.

  1. … 2 more files in changeset.
When a binary mime-type is set on a file that looks like a text file,

make the 'svn' client print a warning about potential future problems

with operations such as diff, merge, and blame.

This is only done during local propset for now, because the file needs

to be present on disk to detect its mime-type.

See for related discussion: http://mail-archives.apache.org/mod_mbox/subversion-dev/201301.mbox/%3C20130131185725.GA13721%40ted.stsp.name%3E

* subversion/svn/cl.h

(svn_cl__propset_print_binary_mime_type_warning): Declare.

* subversion/svn/propedit-cmd.c

(svn_cl__propedit): Warn when a binary svn:mime-type property value is

set on a local file that looks like text.

* subversion/svn/propset-cmd.c

(svn_cl__propset): Warn when a binary svn:mime-type property value is

set on a local file that looks like text.

* subversion/svn/util.c

(svn_cl__propset_print_binary_mime_type_warning): New helper function.

* subversion/tests/cmdline/blame_tests.py

(blame_binary): Adjust text expectations.

* subversion/tests/cmdline/commit_tests.py

(commit_one_new_binary_file): Adjust test expectations.

* subversion/tests/cmdline/diff_tests.py

(diff_force, diff_mime_type_changes):

* subversion/tests/cmdline/info_tests.py

(binary_tree_conflict): Adjust test expectations.

* subversion/tests/cmdline/merge_tests.py

(merge_change_to_file_with_executable,

merge_binary_file_with_keywords): Adjust test expectations.

* subversion/tests/cmdline/prop_tests.py

(binary_mime_type_on_text_file_warning): New constant.

(inappropriate_props): Adjust test expectations.

* subversion/tests/cmdline/svnlook_tests.py

(diff_binary): Adjust test expectations.

  1. … 10 more files in changeset.
Resolve issue #4034, 'blame on files with non-native eol-style sees every line

as modified'.

* subversion/libsvn_client/blame.c

(svn_client_blame5): Normalize to '\n' when eol style is native, but in all

other cases normalize to the expected eol style.

* subversion/tests/cmdline/blame_tests.py

(blame_eol_handling): Remove XFail marker. Use some helper variables

to avoid duplicated code.

  1. … 1 more file in changeset.
* subversion/tests/cmdline/blame_tests.py

(blame_eol_handling): New test for issue #4034, reproducing pburba's

scenario. Marked as XFail.

(test_list): Add test.