sbutler in subversion

Fix up an 'svnadmin load' test (that I broke in r1353730) using the

helper function introduced in r353728.

* subversion/tests/cmdline/

(reflect_dropped_renumbered_revs): Use load_dumpstream().

Support property deltas in svndumpfilter.

* subversion/tests/cmdline/svndumpfilter_tests_data/simple_v3.dump

Extend with a revision containing propdeltas (added and deleted).

* subversion/tests/cmdine/

(accepts_deltas): Check that the prop deltas are preserved.

* subversion/include/svn_repos.h


* subversion/svndumpfilter/main.c

(write_propdel_to_stringbuf): New function.

(parse_baton_t): Add 'allow_deltas' flag.

(node_baton_t): Add fields for delta parsing.

(magic_header_record): Allow deltas for v3 or higher.

(new_node_record): Prepare to parse deltas if necessary.

(set_node_property): Allow prop deltas.

(delete_node_property): New callback implementation.

(filtering_vtable): Use the new callback.

(parse_baton_initialize): Set deltas off by default.

Optionally check properties when testing dumpfile parsers.

* subversion/tests/cmdline/

(load_and_verify_dumpstream): Add 'check_props' flag.







verify_non_utf8_paths): Set the flag (always False).

* subversion/tests/cmdine/

(accepts_deltas): Set the flag (False, so far).

Simplify some tests that load dump text without verifying.

* subversion/tests/cmdline/

(load_dumpstream): New helper function.




load_ranges): Use the new function.

* subversion/tests/cmdine/






match_empty_prefix): Use the new function.

Accept dump format v3, except for property deltas, in svndumpfilter.

Replace the hardcoded version number ("2") with a parser callback for

the dump file format version number. Used by svndumpfilter only (so


Add an API option to treat text-deltas as text instead of applying

them. TRUE for svndumpfilter only.

* subversion/tests/cmdline/

(with_deltas): New test.

(test_list): Add the test.

* subversion/tests/cmdline/svndumpfilter_tests_data/simple_v3.dump

New file.

* subversion/include/svn_repos.h

(magic_header_record): New callback declaration.

(svn_repos_parse_fns3_t): Add the new callback declaration.

(svn_repos_parse_dumpstream3): Add the text-delta option.

* subversion/libsvn_repos/load.c

(parse_format_version): While we're here, put the "output" argument


(svn_repos_parse_dumpstream3): Implement the text-delta-as-text option.

Pass the format version to the new callback. Don't reject v3 dumpfiles


* subversion/svndumpfilter/main.c

(magic_header_record): New callback.

(svn_repos_parse_fns3_t): Add the new callback.

(parse_baton_initialize): Remove the hard-coded format-version output.

(do_filter): Treat text-deltas as text.

* subversion/svnrdump/load_editor.c

(magic_header_record): New callback.

(svn_rdump__load_dumpstream): Use the new callback.

* subversion/libsvn_repos/deprecated.c

(fns3_from_fns2): Set the new callback.

(svn_repos_get_fs_build_parser3): Add the text-delta option.

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

(magic_header_record): New callback.

(svn_repos_get_fs_build_parser4): Use the new callback.

(svn_repos_load_fs4): Add the text-delta option.

Make a small change in that should have been part of r1350545.

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

(svn_repos_load_fs4): Upgrade a local variable to a new type.

Prepare to handle dump format v3 in svndumpfilter.

This revision sets up the boilerplate for backward compatibility.

Later revisions will add a new parser callback for the version number,

and a new option to allow treating text-deltas as text (instead of

applying them immediately).

* subversion/include/svn_repos.h

(svn_repos_parse_fns3_t): New struct. Tweak the callback declarations

to reflect the usual ordering in dump files.

(svn_repos_parse_dumpstream3): New API using the new struct. No

real changes yet.

(svn_repos_get_fs_build_parser4): Modify this new-in-1.8 function to

use the new struct.



svn_repos_get_fs_build_parser3): Deprecate.

(svn_repos_get_fs_build_parser2): Move below below the newly-

deprecated svn_repos_parse_fns2_t declaration.

* subversion/svndumpfilter/main.c


do_filter): Use the new API.

* subversion/svnrdump/load_editor.c

(svn_rdump__load_dumpstream): Use the new API.

* subversion/libsvn_repos/deprecated.c


fns3_from_fns2): New functions.

(svn_repos_get_fs_build_parser3): Use the new API.

* subversion/libsvn_repos/load.c



svn_repos_parse_dumpstream3): Use the new API.

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


svn_repos_load_fs4): Use the new API.

Add a test for issue 4102 "error adding symlink to external dir".

* subversion/tests/cmdline/

(externals_as_symlink_targets): New test.

(test_list): Add new test.

Found by: Evan Wee <>

Add a test for replacing symlinks with normal files and normal files

with symlinks. Try it the usual Subversion way, via replacement, and

also try it via file content and property changes (as git-svn seems to

do it).

The test XPasses with Subversion 1.6.

* subversion/tests/cmdline/

(): Minor import tweaks.

(replace_symlinks): New XFailing test.

(test list): Add new test.

More testing for issue 3899 (auto resolve for wc-wc copies/moves).

* subversion/tests/cmdline/

(copying_conflicts): Rename to...

(copy_and_move_conflicts): ...this and add XFAILing test cases for moves.

Revert r1132834 because the Windows buildbots broke and the move-command

performance took a big hit.

Suggested by: rhuijben

Fix the move command for issue 3899 (auto resolve for wc-wc copies/moves).

* subversion/tests/cmdline/

(copying_conflicts): Rename to...

(copy_and_move_conflicts): ...this and add test cases for moves.

* subversion/libsvn_client/copy.c

(do_wc_to_wc_moves_with_locks2): Let svn_wc_copy3() copy the items and

let svn_wc_delete4() delete them. This reverts r1061328.

* subversion/libsvn_wc/adm_ops.c

(attempt_deletion): New function.

(svn_wc_delete4): If a file has unresolved text or property conflicts,

delete conflict marker files.

Improve the fix for issue 3899 "Auto-resolve conflicts at wc-wc copy/move

destination", for copied text-conflicted files.

* subversion/libsvn_wc/copy.c

(copy_versioned_file): For a text conflict, take the "working" file, if

it exists.

* subversion/tests/cmdline/

(copying_conflicts): Remove XFAIL and tweak a comment.

Tweak the test for issue 3899 (auto resolve for wc-wc copies/moves).

* subversion/tests/cmdline/

(copying_conflicts): Correct the expected status for alpha. Add a

resolved-by-hand test case.

A partial fix for issue 3899 "Auto-resolve conflicts at wc-wc copy/move

destination". There are no longer any conflicts at copy destinations.

The test is XFAIL because text-conflicted files are copied as-is, with

conflict-marker lines. They should be copied from the ".working"

file, if it exists, on the principle that a local copy includes all

local modifications.

* subversion/libsvn_wc/wc-queries.sql


* subversion/libsvn_wc/copy.c

(copy_versioned_dir): When copying unversioned filesystem children,

skip any conflict-marker files.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_get_conflict_marker_files): New function.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_get_conflict_marker_files): New function.

(copy_actual): New helper function.

(cross_db_copy, db_op_copy): Use copy_actual.

* subversion/tests/cmdline/

(): Import a few handy functions directly.

(copying_conflicts): New XFAIL test.

(test_list): Add the test.

* subversion/tests/cmdline/svntest/

(Sandbox.simple_move): New method.

Make 102 XFAIL on OS X because APR doesn't support

case-insensitivity on Unix.

* subversion/tests/cmdline/

(case_only_rename): Set XFAIL.

Remove a redundant test. It duplicates part of mixed_rev_copy_del() in

* subversion/tests/cmdline/

(copy_with_mixed_revisions): Remove this test.

(test_list): Remove the test.

A test that reveals a problem with 'svn status' in mixed-revision

copied trees.

* subversion/tests/cmdline/

(copy_with_mixed_revisions): New XFAIL test.

(test_list): Add the test.

* STATUS: Vote for the r1076730 (issue 3650) group, approving it.

* notes/meetings/berlin-11-agenda

(): Add more ideas.

Following up on Bert's r1102143, tweak a revert test.


(revert_tree_conflicts_with_replacements): Update no longer skips

tree conflict victims, so remove the second update command. Expect

"replaced" status for the victims. Remove @XFail.

On the 1.6.x-issue3816 branch, sync merge the recent 1.6.x changes.
Add a test for issue #3879 "Tree conflict (incoming replacement) has

strange status and revert behavior".

* subversion/tests/cmdline/

(): Import some handy helpers.

(revert_tree_conflicts_with_replacements): New test (@XFail).

(test_list): Add the new test.

* subversion/tests/cmdline/svntest/

(run_and_verify_revert): New function.

Add an XFAIL test for issue 3727: Forced export in current dir creates

unexpected subdir.

* subversion/tests/cmdline/

(export_to_current_dir): New test.

(test_list): Add new test as XFAIL.

Follow-up to r988144: tweak the args of run_and_verify_merge() in a

couple of test cases. We skipped them while testing via ra_local.

* subversion/tests/cmdline/


reintegrate_fails_if_no_root_access): Add target-path to *args.

Tweak comment for svn_client_diff_summarize_t. No code changes.

* subversion/include/libsvn_client.h:

(svn_client_diff_summarize_t) Comment now consistent with changes

to diff output made in r985735.

For diff --summarize, fix issue #2333 "svn diff URL1 URL2 != svn diff

URL2 URL1". Similar to r983720, which fixed the normal diff command.

TODO: Respect the --depth option.

* subversion/libsvn_client/repos_diff_summarize.c:

(edit_baton): Add boolean flag walk_deleted_repos_dirs. Add a

cancel_func and cancel_baton for the walk.

(diff_deleted_dir): New function.

(delete_entry): Use diff_deleted_dir() to walk a dir.

(svn_client__get_diff_summarize_editor): Fill in the new baton fields.

* subversion/tests/cmdline/

(basic_diff_summarize): Expect output for "deleted" trees.

Eliminate 'AM' in 'svn diff --summarize' output, for items added with

properties. Print 'A ' instead, which is consistent with 'svn status'.

The bug existed since 1.6 (or mayber earlier) over ra_file and ra_svn

only. Dunno why ra_dav wasn't affected.

* subversion/libsvn_client/repos_diff_summarize.c:

(change_prop): Set prop_changed only if not added.

* subversion/tests/cmdline/

(basic_diff_summarize): Tweak expectations to eliminate prop-

mod for added items.

(test_list): Remove conditional Skip() for basic_diff_summarize.

Skip 37 (basic_diff_summarize) to unbreak the buildbot, if

running over ra_dav.

Actually, I think the behavior with ra_dav is correct. But I was testing

with ra_file when I edited the test, and both ra_file and ra_svn give

weird output (status='AM').

* subversion/tests/cmdline/

(test_list): Skip #37 for ra_dav.

Fill in some missing cases in a 'diff --summary' test.

* subversion/tests/cmdline/

(basic_diff_summarize): add reverse diffs and adding/deleting