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

Changeset 1140543 is being indexed.

Followup to r1140505. Fix indentation.

* [everywhere]: Fix indentation fallout from the

svn_error_return() -> svn_error_trace() rename.

Patch by: Noorul Islam K M <noorul{_AT_}collab.net>

  1. … 37 more files in changeset.
Rename the 'svn_error_return' macro to 'svn_error_trace'.

See email thread "[RFC] Rename 'svn_error_return' to 'svn_error_trace'?" on

2011-06-23, <http://svn.haxx.se/dev/archive-2011-06/0708.shtml>.

* subversion/include/svn_error.h

(svn_error_return): Rename to svn_error_trace.

(SVN_ERR, svn_error_purge_tracing): Track the rename.

* [everywhere]: Track the rename.

  1. … 120 more files in changeset.
As a follow-up to r1138871, rename status_unauthz again (formerly

status_absent), this time to status_server_excluded.

See for related discussion this post and follow-ups:

From: C. Michael Pilato

To: dev@

Subject: Re: svn commit: r1138871 - in /subversion/trunk/subversion:

include/private/ libsvn_client/ libsvn_wc/ tests/libsvn_wc/

Message-ID: <4E0346D4.4040400@collab.net>

http://svn.haxx.se/dev/archive-2011-06/0727.shtml

Suggested by: julianfoad

(the new name 'server-excluded')

* subversion/include/private/svn_wc_private.h

(svn_wc__node_is_status_unauthz): Rename to...

(svn_wc__node_is_status_server_excluded): ... this, and rename the

'is_unauthz' output parameter to 'is_server_excluded'.

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

subversion/libsvn_wc/props.c,

subversion/libsvn_wc/adm_ops.c,

subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/conflicts.c,

subversion/libsvn_wc/crop.c,

subversion/libsvn_wc/diff_editor.c

subversion/libsvn_wc/adm_files.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/info.c,

subversion/libsvn_wc/copy.c,

subversion/libsvn_wc/ambient_depth_filter_editor.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/lock.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/wc_db.h,

subversion/libsvn_wc/node.c,

subversion/libsvn_wc/cleanup.c,

subversion/libsvn_wc/workqueue.c,

subversion/libsvn_client/copy.c,

(test_getting_info, validate_node, test_inserting_nodes, test_pdh,

svn_wc__perform_props_merge, svn_wc__get_pristine_props, svn_wc_delete4,

check_can_add_to_parent, revert_restore, report_revisions_and_depths,

recursive_resolve_conflict, crop_children, svn_wc_exclude, svn_wc_crop_tree2,

walk_local_nodes_diff, report_wc_directory_as_added,

svn_wc__text_base_path_to_read, svn_wc__get_pristine_contents,

IS_NODE_PRESENT, check_tree_conflict, delete_entry, absent_node,

svn_wc__check_wc_root, build_info_for_entry, copy_versioned_dir,

svn_wc_copy3, make_file_baton, open_root, delete_entry, open_directory,

get_dir_status, internal_status, svn_wc__internal_check_wc, adm_available,

read_one_entry, write_entry, kind_map, insert_base_node,

add_absent_excluded_not_present_node, svn_wc__db_base_add_absent_node,

db_op_copy, db_op_copy_shadowed_layer, check_replace_txn,

bump_node_revision, bump_revisions_post_update, svn_wc__db_node_hidden,

svn_wc__db_status_t, svn_wc__db_base_add_symlink,

svn_wc__db_op_set_tree_conflict, convert_db_kind_to_node_kind,

walker_helper, svn_wc__internal_walk_children,

svn_wc__node_is_status_absent, svn_wc__internal_node_get_schedule,

svn_wc__check_for_obstructions, repair_timestamps, remove_base_node,

repos_to_wc_copy_locked): Rename things as follows:

status_unauthz -> status_server_excluded; is_unauthz -> is_server_excluded

  1. … 21 more files in changeset.
As part of internal API cleanup, and in the name of code clarity,

rename svn_wc__db_status_absent to svn_wc__db_status_unauthz (not

authorized), because this is what 'absent' really means. Now there

is less potential for confusing 'absent' with 'not-present' and 'excluded'.

Discussed on IRC with Julian and Bert (not on dev@, but I still wanted

to mention that this wasn't just my own idea).

We considered postponing this step to post-1.7 but Bert pointed out

that doing so would unnecessarily make backport merges harder.

But note that this does not rename all occurrences of the term 'absent'

so we'll have to live with historical baggage in some function names,

comments, etc.

Neither does this change the wc.db schema. But I think it would be good

to rename the NODES presence value "absent" to "unauthz" as well in a

separate step (including a format bump).

Suggested by: julianfoad

(the new name 'unauthz')

* subversion/include/private/svn_wc_private.h

(svn_wc__node_is_status_absent): Rename to...

(svn_wc__node_is_status_unauthz): ... this, and rename the 'is_absent'

output parameter to 'is_unauthz'.

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

subversion/libsvn_wc/props.c,

subversion/libsvn_wc/adm_ops.c,

subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/conflicts.c,

subversion/libsvn_wc/crop.c,

subversion/libsvn_wc/diff_editor.c

subversion/libsvn_wc/adm_files.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/info.c,

subversion/libsvn_wc/copy.c,

subversion/libsvn_wc/ambient_depth_filter_editor.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/lock.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/wc_db.h,

subversion/libsvn_wc/node.c,

subversion/libsvn_wc/cleanup.c,

subversion/libsvn_wc/workqueue.c,

subversion/libsvn_client/copy.c,

(test_getting_info, validate_node, test_inserting_nodes, test_pdh,

svn_wc__perform_props_merge, svn_wc__get_pristine_props, svn_wc_delete4,

check_can_add_to_parent, revert_restore, report_revisions_and_depths,

recursive_resolve_conflict, crop_children, svn_wc_exclude, svn_wc_crop_tree2,

walk_local_nodes_diff, report_wc_directory_as_added,

svn_wc__text_base_path_to_read, svn_wc__get_pristine_contents,

IS_NODE_PRESENT, check_tree_conflict, delete_entry, absent_node,

svn_wc__check_wc_root, build_info_for_entry, copy_versioned_dir,

svn_wc_copy3, make_file_baton, open_root, delete_entry, open_directory,

get_dir_status, internal_status, svn_wc__internal_check_wc, adm_available,

read_one_entry, write_entry, kind_map, insert_base_node,

add_absent_excluded_not_present_node, svn_wc__db_base_add_absent_node,

db_op_copy, db_op_copy_shadowed_layer, check_replace_txn,

bump_node_revision, bump_revisions_post_update, svn_wc__db_node_hidden,

svn_wc__db_status_t, svn_wc__db_base_add_symlink,

svn_wc__db_op_set_tree_conflict, convert_db_kind_to_node_kind,

walker_helper, svn_wc__internal_walk_children,

svn_wc__node_is_status_absent, svn_wc__internal_node_get_schedule,

svn_wc__check_for_obstructions, repair_timestamps, remove_base_node,

repos_to_wc_copy_locked): Rename things as follows:

status_absent -> status_unauthz; is_absent -> is_unauthz

  1. … 21 more files in changeset.
The semi-annual trailing whitespace cleansing ritual.

* everywhere:

for extsn in c h cpp java py pl rb; do

sed -i -e 's/[ \t]*$//' `find . -name "*.$extsn" | xargs grep '[ \t]$' -l`

done

  1. … 144 more files in changeset.
Make these new APIs private: svn_uri_is_ancestor(), svn_relpath_is_ancestor().

* subversion/include/svn_dirent_uri.h,

subversion/libsvn_subr/dirent_uri.c

(svn_uri_is_ancestor): Rename to svn_uri__is_ancestor().

(svn_relpath_is_ancestor): Rename to svn_relpath__is_ancestor().

* Everywhere else: Adjust calls.

  1. … 20 more files in changeset.
Make svn_uri_skip_ancestor() URI-decode its result, because that makes sense

for returning a relpath, and because that's what all current callers want,

and because that brings the semantics of this function and svn_uri_is_child()

one step closer together.

* subversion/include/svn_dirent_uri.h,

subversion/libsvn_subr/dirent_uri.c

(svn_uri_skip_ancestor): Decode the result. Add a result pool parameter.

* subversion/libsvn_client/commit.c

(collect_lock_tokens): Don't decode the result after calling it.

* subversion/libsvn_client/commit_util.c

(harvest_copy_committables): Same.

* subversion/libsvn_client/merge.c

(merge_reintegrate_locked): Same.

* subversion/libsvn_client/util.c

(svn_client__path_relative_to_root): Same.

* subversion/libsvn_ra_local/ra_plugin.c

(reporter_link_path): Same.

* subversion/libsvn_wc/adm_ops.c

(svn_wc_add4): Same.

* subversion/libsvn_wc/update_editor.c

(make_editor, svn_wc_add_repos_file4): Same.

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

(test_uri_skip_ancestor): Adjust the call.

  1. … 9 more files in changeset.
Fix issue 3820, replacing a file with a directory clears any changelist.

* subversion/libsvn_wc/wc_db.c

(insert_working_node): Remove any changelist for directories.

* subversion/libsvn_wc/adm_ops.c

(add_from_disk): Don't remove changelist.

* subversion/libsvn_wc/wc-queries.sql

(STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST): New.

* subversion/tests/cmdline/changelist_tests.py

(change_to_dir): Remove XFAIL, restore changelist before testing

that merge removes it.

  1. … 3 more files in changeset.
* subversion/libsvn_wc/adm_ops.c

(svn_wc_delete4): Following up on r1132948 and r1132919, answer my own

question: We can't just remove conflict markers in a keep_local scenario,

as that would remove conflict markers from the wrong directory, in case

we are just changing the casing of a node on a case insensitive filesystem.

Reapply a heavily tweaked version of sbutler's patch that made svn_wc_delete4

clean up conflict marker files of deleted nodes.

Compared to the original patch in r1132834: Don't use a helper function that

reimplements passing TRUE for svn_io_remove_file2's ignore_enoent. Avoid

error leaks. Perform the in-db deletion before removing the marker files.

* subversion/libsvn_wc/adm_ops.c

(svn_wc_delete4): Check for conflicts and remove conflict marker files. Rename

argument to scratch_pool.

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

performance took a big hit.

Suggested by: rhuijben

  1. … 2 more files in changeset.
Fix the move command for issue 3899 (auto resolve for wc-wc copies/moves).

* subversion/tests/cmdline/copy_tests.py

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

  1. … 2 more files in changeset.
Fix issue 3894, clean up revert list SQL table.

* subversion/libsvn_wc/adm_ops.c

(revert_restore): Remove comments.

(new_revert_internal): Call svn_wc__db_revert_list_done.

* subversion/libsvn_wc/wc-queries.sql

(STMT_DROP_REVERT_LIST): New.

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_revert_list_done): New.

  1. … 3 more files in changeset.
Fix issue 3900, wc delete of presence=absent nodes

* subversion/libsvn_wc/wc_db.c

(op_delete_txn): Check for absent nodes.

* subversion/libsvn_wc/adm_ops.c

(svn_wc_delete4): No need to check for absent node.

* subversion/tests/cmdline/authz_tests.py

(wc_delete): New test.

(test_list): Add new test.

  1. … 2 more files in changeset.
As part of issue #3779, "actual-only nodes need regression tests",

make 'svn add' detect tree conflict victims that do not exist on disk

and prevent adding new nodes at that path with a meaningful error message.

This implies that if users need to add a new node to resolve the conflict

they need to mark the conflict as resolved first. I think this is safer

than allowing accidental additions to take place. Since the node is not

visible on disk the addition might be a mistake.

* subversion/libsvn_wc/adm_ops.c

(check_can_add_node): Don't allow adding new items on top of nonexistent

conflicted nodes.

* subversion/libsvn_client/add.c

(add): As previous.

* subversion/tests/cmdline/tree_conflict_tests.py

(actual_only_node_behaviour): Adjust test cases for 'add' and 'mkdir'.

  1. … 2 more files in changeset.
With the simplification of new_revert_partial() in r1104185, the

REVERT_ROOT parameter is not used. In fact, it is not used by this entire

set of revert functions. So... nuke it. From orbit. It's the only way to

be safe.

Also, fold revert_internal() into svn_wc_revert4().

* subversion/libsvn_wc/adm_ops.c:

(revert_restore): remove REVERT_ROOT and adjust recursive call.

(new_revert_internal): remove REVERT_ROOT and adjust call to

revert_restore().

(new_revert_changelist): remove REVERT_ROOT and adjust recursive call.

adjust call to new_revert_internal().

(new_revert_partial): remove REVERT_ROOT and adjust calls to

new_revert_internal().

(revert_internal): removed. folded into ...

(svn_wc_revert4): ... here. directly call new_revert_changelist() if we

have any changelist_filters. call new_revert_internal() or

new_revert_partial() depending upon the DEPTH parameter. add an error

return for bogus DEPTH values.

Unwind a useless recursion. The child nodes never recursed beyond the

simple call to new_revert_internal(), so that call just moves inside the

loop itself.

* subversion/libsvn_wc/adm_ops.c:

(new_revert_changelist): formatting change only

(new_revert_partial): don't always read the kind; it will be read later,

and only when necessary. the root of the revert will always be

reverted (via a call to new_revert_internal). within the child loop,

directly call new_revert_internal with a svn_depth_empty to ensure

just that node is reverted. the iterpool is created a little earlier

for some additional benefit.

Implement full depth filtering when populating the target list, and modify

the way we set changelists to validate this approach.

* subversion/libsvn_wc/adm_ops.c

(changelist_walker_baton, changelist_walker): Remove.

(svn_wc_set_changelist2): Don't use a node walker, use the target list

instead.

* subversion/libsvn_wc/wc-queries.sql

(STMT_INSERT_TARGET_DEPTH_FILES,

STMT_INSERT_TARGET_DEPTH_IMMEDIATES,

STMT_INSERT_TARGET_DEPTH_INFINITY,

STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES,

STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES,

STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY):

New.

(STMT_INSERT_TARGET_WITH_CHANGELIST): Reorder some params.

* subversion/libsvn_wc/wc_db.c

(populate_targets_tree): Switch on the depth to determine which statement

to execute when populating the targets list.

(svn_wc__db_op_set_changelist): Remove restriction on depth for this

operation.

  1. … 2 more files in changeset.
Move the special-cased directory skipping message for changelists to

the wc_db layer.

* subversion/libsvn_wc/adm_ops.c

(changelist_walker): Remove special case for directories.

* subversion/libsvn_wc/wc-queries.sql

(STMT_UPDATE_ACTUAL_CHANGELISTS): Only set changelists on files.

(STMT_MARK_SKIPPED_CHANGELIST_DIRS): New.

(STMT_CREATE_TARGETS_LIST): Also store the kind of the object, and add an

index.

(STMT_INSERT_TARGET): Insert the kind of the object.

* subversion/libsvn_wc/wc_db.c

(populate_targets_tree): Add the wc_id of the object.

(set_changelist_txn): If setting a changelist on a dir, add a skip

notification.

  1. … 2 more files in changeset.
Revert my orginal fix for issue #3351 in preparation for handling the removal

of file and other externals properly on update instead of on commit.

* subversion/include/svn_wc.h

(svn_wc_process_committed_queue2): Remove two arguments.

* subversion/libsvn_client/client.h

(svn_client__handle_externals): Remove delete_only option.

* subversion/libsvn_client/commit.c

(svn_client_commit5): Stop collecting and processing externals.

* subversion/libsvn_client/externals.c

(item_change_baton_t): Remove variable.

(handle_external_item_change): Don't check for delete_only.

(handle_externals_change): Use constant baton as argument

instead of separate args.

(svn_client__handle_externals): Pass baton instead of arguments.

(svn_client__export_externals): Update caller.

* subversion/libsvn_client/switch.c

(switch_internal): Update caller.

* subversion/libsvn_client/update.c

(update_internal): Update caller.

* subversion/libsvn_wc/adm_ops.c

(process_committed_leaf,

svn_wc__process_committed_internal): Remove external processing.

(svn_wc_process_committed_queue2): Don't collect externals and don't

send them to the callback.

* subversion/libsvn_wc/deprecated.c

(svn_wc_process_committed_queue,

svn_wc_process_committed4): Update caller.

* subversion/libsvn_wc/wc.h

(svn_wc__process_committed_internal): Remove external arguments.

* subversion/tests/cmdline/externals_tests.py

(update_lose_file_external): Remove assumption that commit changes the

external and reapply XFail marking.

  1. … 9 more files in changeset.
* subversion/libsvn_wc/adm_ops.c

(revert_restore): Following up on r1101817, fix compilation on systems that

do have symlinks (unlike my dev machine).

Following up on r1101473 (and several other followups), resolve the regression

in our issue #1663 handling, by moving the special recorded information

handling exception in the revert code itself.

The revert code already stats the file, so we can just make it retrieve

the information it needs directly. This also allows removing two optional

output arguments from svn_wc__internal_file_modified_p that were only used

by the revert code.

* subversion/libsvn_wc/adm_ops.c

(includes): Add private/svn_io_private.h

(revert_restore): Extend our own stat to also retrieve size, mtime,

read only and executable. Compare against the recorded information

locally before calling svn_wc__internal_file_modified_p in the slow

exact mode. Stop assuming that all symlinks should always be reverted

on systems that don't support symlinks.

(svn_wc__internal_remove_from_revision_control): Update caller.

* subversion/libsvn_wc/cleanup.c

(repair_timestamps): Update caller. Handle symlink as file.

* subversion/libsvn_wc/copy.c

(copy_versioned_file): Update caller.

* subversion/libsvn_wc/diff_editor.c

(file_diff): Update caller.

(close_file): Update caller.

* subversion/libsvn_wc/diff_local.c

(file_diff): Update caller.

* subversion/libsvn_wc/externals.c

(close_file): Update caller.

* subversion/libsvn_wc/questions.c

(includes): Remove private/svn_io_private.h

(svn_wc__internal_file_modified_p): Remove two arguments. Use

svn_io_stat_dirent instead of svn_io_stat.

* subversion/libsvn_wc/status.c

(assemble_status): Update caller.

* subversion/libsvn_wc/update_editor.c

(merge_file): Update caller.

* subversion/libsvn_wc/wc.h

(svn_wc__internal_file_modified_p): Remove two arguments. Update

documentation.

* subversion/libsvn_wc/wc_db.c

(has_local_mods): Update caller.

* subversion/libsvn_wc/workqueue.c

(process_commit_file_install): Update caller.

* subversion/tests/cmdline/revert_tests.py

(revert_reexpand_keyword): Remove XFail. Assert that the first part of the

test succeeds, but that we don't revert the file after we fixed the

recorded information.

  1. … 12 more files in changeset.
Ok, thinking this over at 4 AM. I don't think we are willing to accept

the performance regression of r1101473 in svn revert -R. So I accept

that we don't have to revert that are not strictly as checked out, but

are still unmodified according to status.

In most cases this reverts to the behavior of before r1101473, as

before that we accepted recorded information as 'the file is not

modified'. But I'm introducing the change now that when the file might

be modified, we do the less strict comparison.

The only way to have both the performance and the strict comparison

would be to store another boolean with the recorded information to

tell to what level we performed the recorded comparison. (And should

we then cache the strict or the not strict?)

[Note from the future: This reverts 'svn revert' to the 1.6.x behavior

of using the recorded information as hint. But this breaks one of

the revert tests because that tests assumes that 'svn revert' notices

keyword expansion changes. More details in r1101730.]

* subversion/libsvn_wc/adm_ops.c

(revert_restore): No longer ask svn_wc__internal_file_modified_p()

to perform an exact comparison.

* subversion/libsvn_wc/adm_ops.c

(svn_wc__internal_remove_from_revision_control): Resolve variable shadowing

warning.

Found by: philip

In general svn_wc__internal_file_modified_p() should be called with

compare_text_bases TRUE, as that is what a normal user would call a

modified file.

In other words it should ignore keyword expansion differences and eol

differences, as we would do that on commit and status.

Then we have a property that indicates whether we should use recorded

information or not, which we only use to specialize svn:eol-style in

the commit processing to hide a few bugs.

But for svn:keywords we do a similar thing, but we do that when updating

the property value. (Which doesn't trigger on merges)

Summarized: This moves the recording fixes to the two places where we set

properties. And this makes us always use the recorded information from the

public api. Adds a simple to explain boolean to check if the file matches

what you would get if you restored the file.

* subversion/libsvn_client/commit_util.c

(check_prop_mods): removed. no longer needed.

(harvest_committables): Remove eol checks. (Handled by libsvn_wc now,

just like svn:keywords).

* subversion/libsvn_wc/adm_ops.c

(revert_restore): Do an exact match check.

(svn_wc__internal_remove_from_version_control): This function is only used

from svn_wc_crop and when removing working copies, so stop doing work that

isn't relevant there. Use recursive delete when we find a deleted node.

Only call svn_wc__adm_destroy when we really destroy the wc.

* subversion/libsvn_wc/cleanup.c

(repair_timestamps): Convert to repository form for timestamp repair.

* subversion/libsvn_wc/copy.c

(svn_wc__internal_file_modified_p): Convert to repository form for copy

repair.

* subversion/libsvn_wc/diff_editor.c

(file_diff): Update caller.

* subversion/libsvn_wc/diff_local.c

(file_diff): Update caller.

* subversion/libsvn_wc/externals.c

(close_file): Update caller. Do the right check.

* subversion/libsvn_wc/props.c

(svn_wc__perform_props_merge): Just clear recorded information on magic

property changes.

(do_propset): Handle eol changes like we do keyword changes, but make

wc_db do the hard work in one atomic step.

* subversion/libsvn_wc/questions.c

(compare_and_verify): Remove unused checksum verfication. (Should be handled

by a pristine verification).

(svn_wc__internal_file_modified_p): Update arguments.

(svn_wc_text_modified_p2): Update caller add note.

(argument will be removed in a followup commit).

* subversion/libsvn_wc/status.c

(assemble_status): Update caller.

* subversion/libsvn_wc/update_editor.c

(merge_file): Update caller.

(svn_wc_add_repos_file4): Update caller.

* subversion/libsvn_wc/wc.h

(svn_wc__internal_file_modified_p): Update documentation.

* subversion/libsvn_wc/wc_db.c

(record_baton_t): Moved up in the file, to allow reuse.

(db_record_fileinfo): Added db_ prefix and moved up to allow reuse.

(svn_wc__db_global_record_fileinfo): Moved.

(set_props_baton_t): Add clear_recorded_info boolean.

(set_props_txn): Clear recorded info if requested.

(svn_wc__db_op_set_props): Add argument.

(record_baton_t, record_fileinfo,

svn_wc__db_global_record_fileinfo): Moved up.

(has_local_mods): Update caller.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_op_set_props): Add argument and update documentation.

* subversion/libsvn_wc/workqueue.c

(process_commit_file_install): Update caller. As the result is only used to

update the cache it shouldn't use exact comparison.

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

(validate_node): Update caller.

  1. … 15 more files in changeset.
[This is patch 1/3. This one is self contained, but doesn't update

subversion/libsvn_wc/external.c, subversion/libsvn_wc/merge.c

and subversion/libsvn_wc/update_editor.c yet.]

Make the translate api use a passed set of properties and make retrieving the

values needed for keyword expansion optional for the simple normalization case.

This patch prepares this part of our libsvn_wc api for when file externals

are no longer normal versioned files.

The next patch updates the editors to use the new api and the last one will

update the merge code. You need all or none of these patches, but this allows

easier review.

* subversion/libsvn_wc/adm_ops.c

(svn_wc__internal_remove_from_revision_control): Update caller.

* subversion/libsvn_wc/props.c

(do_propset): Update caller.

* subversion/libsvn_wc/questions.c

(compare_and_verify): Update caller.

* subversion/libsvn_wc/translate.c

(svn_wc__internal_translated_stream): Update caller.

(svn_wc__internal_translated_file): Update caller.

(svn_wc__get_translate_info): Forward for_normalization boolean.

(svn_wc__expand_keywords): If normalizing, don't read from db. Try to obtain

url via read info.

* subversion/libsvn_wc/translate.h

(svn_wc__get_translate_info): Update arguments and documentation.

(svn_wc__expand_keywords): Update arguments and documentation.

* subversion/libsvn_wc/workqueue.c

(install_committed_file,

run_file_install,

run_file_copy_translated): Update callers.

  1. … 5 more files in changeset.
Remove the separate wc apis that registered a file external before it was

inserted in the working copy. The external editor can install externals in

a single step, which removes intermediate database states.

* subversion/include/private/svn_wc_private.h

(svn_wc__set_file_external_location): Remove function.

(svn_wc__get_file_external_editor): Provide the definition to the editor.

(svn_wc__register_file_external): Remove function.

* subversion/libsvn_client/externals.c

(switch_file_external): Stop registering file externals before they are

inserted.

* subversion/libsvn_wc/adm_ops.c

(svn_wc__register_file_external): Remove function.

* subversion/libsvn_wc/externals.c

(svn_wc__set_file_external_location): Remove function.

(edit_baton): Add some comments. Add to be recorded information.

(close_file): Register the provided information instead of the actual

information.

(svn_wc__get_file_external_editor): Store to be recorded information in

baton.

  1. … 3 more files in changeset.
In the working copy library: Add the initial plumbing for a file externals

update editor. Move the externals functions to a new externals.c.

No functional changes, but contains some new code that will be enabled

in a followup commit.

* subversion/include/private/svn_wc_private.h

(svn_wc__get_file_external_editor): New function.

(svn_wc__crawl_file_external): New function.

* subversion/libsvn_wc/adm_ops.c

(svn_wc__set_file_external_location): Move to externals.c

* subversion/libsvn_wc/externals.c

New file, copied from props.c

(..): Removed property functions.

(find_and_remove_externals_revision): Kept function.

(svn_wc_parse_externals_description3): Kept function.

(svn_wc__set_file_external_location): Moved here from adm_ops.c

(edit_baton): New struct.

(set_target_revision,

open_root,

add_file,

open_file,

apply_textdelta,

change_file_prop,

close_file): New stubbed delta editor functions.

(svn_wc__get_file_external_editor): New function.

(svn_wc__crawl_file_external): New function.

* subversion/libsvn_wc/props.c

(TEST_DB_PROP): Remove comment.

(find_and_remove_externals_revision): Remove function.

(svn_wc_parse_externals_description3): Remove function.

  1. … 3 more files in changeset.
* subversion/libsvn_wc/adm_ops.c

(process_committed_leaf): Remove two outdated comments:

The op-depth folding is already implemented in wc_db.c

And issue #3676 is resolved by this same folding algorithm. (We stopped

setting the last modified info on all nodes via the folding)

* subversion/libsvn_wc/adm_ops.c

(svn_wc_delete4): Provide an understandable error message when trying to

delete the root of a working copy.