Checkout Tools
  • last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Add a note to the working copy crop function about issue #4636.

* subversion/libsvn_wc/crop.c

(crop_children): Add comment.

Consolidate all places in libsvn_wc where we 'determine if a tree has

modifications', because all of them had similar shortcomings where

they missed certain kinds of changes.

This consolidates the svnversion, crop and update checks for

modifications to a single function that handles all cases.

* subversion/include/private/svn_wc_private.h

(svn_wc__has_local_mods): Add ignore_unversioned argument.

* subversion/libsvn_client/copy.c

(pin_externals_prop): Update caller.

* subversion/libsvn_client/merge.c

(ensure_wc_is_suitable_merge_target): Update caller.

* subversion/libsvn_wc/crop.c

(modcheck_baton_t): Remove struct.

(modcheck_callback,

allow_crop): Remove function.

* subversion/libsvn_wc/questions.c

(modcheck_baton_t,

modcheck_callback): Move here from update_editor.c.

Support ignore_unversioned.

(svn_wc__node_has_local_mods): Move here. Perform db changes check first.

(svn_wc__has_local_mods): Use svn_wc__node_has_local_mods.

* subversion/libsvn_wc/revision_status.c

(svn_wc_revision_status2): Update caller.

* subversion/libsvn_wc/update_editor.c

(modcheck_baton_t,

modcheck_callback,

svn_wc__node_has_local_mods): Move to questions.c.

(check_tree_conflict): Update caller.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_BASE_FILES_RECURSIVE): Remove statement.

* subversion/libsvn_wc/wc.h

(svn_wc__node_has_local_mods): Add argument.

* subversion/libsvn_wc/wc_db.c

(has_local_mods): Rename to...

(has_db_mods): ... and leave walking the working copy to the status walker.

(svn_wc__db_has_local_mods): Rename to...

(svn_wc__db_has_db_mods): ... this.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_revision_status): Remove cancel callbacks. Update documentation.

* subversion/libsvn_wc/wc_db_update_move.c

(tc_editor_delete): Update caller.

  1. … 11 more files in changeset.
Make svn_wc__db_base_delete() take a single argument to specify that you

either want to keep the working copy the same (by copying to WORKING

if necessary), or want to remove everything.

This removes some of the calculation logic from the callers and as

such causes some behavior changes that need further tweaks. The current

behavior already fixes a few bugs, but I'm not entirely sure why this

has so much effect on the conflict resolver without changing the

NODES layout, nor the conflict skels.

* subversion/libsvn_wc/crop.c

(crop_children,

svn_wc_exclude): Update caller.

* subversion/libsvn_wc/externals.c

(svn_wc__external_remove): Update caller.

* subversion/libsvn_wc/update_editor.c

(delete_entry): Simplify calculations that can be done in the

db layer.

(close_edit): Update caller.

* subversion/libsvn_wc/wc_db.c

(db_base_remove): Calculate what must be done on a single argument.

Always process moves, not only when somebody installs a new conflict.

Remove a bit of double work.

(svn_wc__db_base_remove): Update caller.

(svn_wc__db_op_make_copy_internal): Make moving the moves to the direct

delete of BASE optional in the internal api.

(svn_wc__db_op_make_copy): Update caller.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_remove): Update prototype and docs.

* subversion/libsvn_wc/wc_db_private.h

(svn_wc__db_op_make_copy_internal): Add argument.

* subversion/libsvn_wc/wc_db_update_move.c

(tc_editor_delete): Update caller.

* subversion/libsvn_wc/workqueue.c

(run_base_remove): Update caller.

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

(base_dir_insert_remove): Update caller.

(move_away_delete_update): Assume still moved.

(move_retract): Update assumptions.

(move_update_parent_replace): Assume still moved.

(make_copy_and_delete_mixed): Update caller. Assume one move fixed.

(test_funcs): Mark some more functions XFail that can't be resolved

by the existing conflict resolver setting.

  1. … 8 more files in changeset.
* subversion/libsvn_wc/crop.c

(crop_children): Fix compilation under C89/C90 rules by moving variable.

Make svn update --set-depth <something-limiting> properly avoid removing

local changes, instead of leaving just some items as unversioned, following

the same handling as we do with updates.

It already handled some changes of the root properly, but in most cases

it could be as destructive as as 'svn revert -R TARGET'

In the background this makes the crop/exclude operation the BASE operation

that it should have been using from the start.

* subversion/libsvn_wc/crop.c

(crop_children): Only try to remove BASE nodes affected by the depth

filter. Don't remove nodes that are changed/shadowed.

* subversion/libsvn_wc/wc-queries.sql

(STMT_UPDATE_NODE_BASE_DEPTH): Only store depth when presence specifies

there is an actual directory (to make the wc-db function fail if it

isn't).

* subversion/tests/cmdline/depth_tests.py

(fold_tree_with_unversioned_modified_items): Update expected results.

  1. … 2 more files in changeset.
In preparation for some cleanup of the working copy crop (and backing) code,

and a big number of bugfixes in svn_wc__db_base_remove() make it possible to

install a not-present node with the svn_wc__db_base_remove() function.

* subversion/libsvn_wc/crop.c

(crop_children): Update caller.

* subversion/libsvn_wc/externals.c

(svn_wc__external_remove): Update caller.

* subversion/libsvn_wc/update_editor.c

(delete_entry,

close_edit): Update caller.

* subversion/libsvn_wc/wc_db.c

(db_base_remove): Remove support for removing locks and allow

setting an excluded node instead of just not-present.

(bump_node_revision): Use just one of the 20 features of

db_base_remove, by doing the delete directly.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_remove): Update arguments and docs.

* subversion/libsvn_wc/workqueue.c

(run_base_remove): Update caller.

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

(base_dir_insert_remove): Update caller.

  1. … 6 more files in changeset.
Fix issue #4364: Correctly remove the stale entries from the lock table when

committing deletions.

* subversion/libsvn_client/commit.c

(post_process_commit_item): always pass the flag to remove locks for deleted

and replaced items.

* subversion/libsvn_wc/wc-queries.sql

Add a new query which removes all lock rows recursively for a node.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_remove): Add a new parameter remove_locks to recursively

remove the lock rows.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_base_remove): Forward the new remove_locks parameter to

db_base_remove.

(db_base_remove): Add and implement remove_locks.

(commit_node): Also remove the locks recursively for subnodes of the

current node.

(bump_node_revision): Pass FALSE for remove_locks to get the old default

behaviour.

* subversion/libsvn_wc/adm_ops.c

(process_committed_leaf): In the shortcut for deleted nodes, pass TRUE to

remove the locks recursively.

* subversion/libsvn_wc/crop.c

(crop_children): Pass FALSE for remove_locks to get the old default

behaviour.

* subversion/libsvn_wc/externals.c

(svn_wc__external_remove): Pass FALSE for remove_locks to get the old

default behaviour.

* subversion/libsvn_wc/update_editor.c

(delete_entry

close_edit): Pass FALSE for remove_locks to get the old default behaviour.

* subversion/libsvn_wc/workqueue.c

(run_base_remove): Pass FALSE for remove_locks to get the old default

behaviour.

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

(base_dir_insert_remove): Pass FALSE for remove_locks to get the old default

behaviour.

* subversion/tests/cmdline/lock_tests.py

(def drop_locks_on_parent_deletion): Provide a regression test which catches

reappearing locks.

Patch by: Markus Schaber <m.schaber{_AT_}codesys.com>

(minor tweaks by me)

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

that describes node kinds.

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

All uses of svn_kind_t were replaced with svn_node_kind_t.

(svn_node_kind_t): New enumeration constant, svn_node_symlink.

Replaces all previous uses of svn_kind_symlink.

(svn__node_kind_from_kind): Removed. All call sites updated.

(svn__kind_from_node_kind): Removed. All call sites updated.

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

Added comment about incompatible representation of svn_node_unknown.

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

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

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

from the following renames:

svn_kind_t to svn_node_kind_t

svn_kind_none to svn_node_none

svn_kind_file to svn_node_file

svn_kind_dir to svn_node_dir

svn_kind_unknown to svn_node_unknown

svn_kind_symlink to svn_node_symlink

  1. … 65 more files in changeset.
Following up on my previous issue #4288 fix, and the recent test extension in

r1432612, resolve the rest of issue #4288 which appears to be invisible on

Windows.

* subversion/libsvn_wc/adm_ops.c

(process_committed_leaf): Update caller.

* subversion/libsvn_wc/crop.c

(crop_children): Update caller. Pass the right path.

* subversion/libsvn_wc/externals.c

(svn_wc__external_remove): Update caller.

* subversion/libsvn_wc/update_editor.c

(delete_entry): Ask svn_wc__db_base_remove() not to queue deletes if the

node or one of its ancestors is shadowed or obstructed.

* subversion/libsvn_wc/wc_db.c

(db_base_remove,

svn_wc__db_base_remove): Make queueing wq items for deletes optional.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_remove): Add argument and update documentation.

* subversion/libsvn_wc/workqueue.c

(run_base_remove): Update caller.

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

(base_dir_insert_remove): Update caller.

  1. … 7 more files in changeset.
Remove the function svn_wc__check_wc_root() as it was duplicating the

functionality of svn_wc__db_is_switched() and of the two it was the less

well named (in that it is a 'db' function but didn't have that in its name).

* subversion/libsvn_wc/wc.h

(svn_wc__check_wc_root): Remove.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_is_switched): Improve the doc string using text from

svn_wc__check_wc_root's doc string.

* subversion/libsvn_wc/update_editor.c

(svn_wc__check_wc_root): Remove.

(svn_wc_get_actual_target2): Track the change.

* subversion/libsvn_wc/crop.c

(svn_wc_exclude): Track the change.

* subversion/libsvn_wc/deprecated.c

(svn_wc_is_wc_root2): Same.

  1. … 4 more files in changeset.
* subversion/libsvn_wc/crop.c

(crop_children): Remove obsolete comment.

Replace the very wc-1.0 style svn_wc__internal_remove_from_revision_control

function with an atomic wc-ng function. This makes operations like reducing the

depth of a working copy or removing externals from a wc atomic by performing

a db operation and installing workqueue items.

* subversion/libsvn_client/externals.c

(relegate_dir_external): Obtain lock here that was obtained in the caller.

Properly handle working copy renames.

(switch_dir_external): Remove function that has been moved to the callee.

* subversion/libsvn_wc/adm_ops.c

(process_committed_leaf): Update caller.

* subversion/libsvn_wc/crop.c

(includes): Include workqueue.h.

(IGNORE_LOCAL_MOD): Remove now unused macro.

(crop_children): Use db operation directly.

(svn_wc_exclude): Use db operation directly. Avoid second db operation

by passing absent information.

(svn_wc_crop_tree2): Update caller. Run workqueue.

* subversion/libsvn_wc/externals.c

(svn_wc__external_remove): If we leave an external, leave the whole external

by using the fail early mode.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_WORKING_PRESENT,

STMT_DELETE_NODE_RECURSIVE,

STMT_DELETE_NODE): New queries.

* subversion/libsvn_wc/wc_db.c

(remove_node_baton): Add fields for new options.

(remove_node_txn): Add code to create workqueue items for nodes that exist

on disk. Provide cancellation checking when checking for changes.

Allow setting excluded and not-present.

(svn_wc__db_op_remove_node): Update caller.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_op_remove_node): Update prototype and documentation.

  1. … 6 more files in changeset.
Handle an currently always FALSE argument of svn_wc_remove_from_revision_control2

in the public wrapper to make it easier to switch the implementation to an

atomic operation.

* subversion/libsvn_wc/adm_ops.c

(svn_wc__internal_remove_from_revision_control): Remove instant_error argument,

assume its value is false trough this function.

(remove_from_revision_status_callback): New function, implementing

instant_error as status walker callback.

(svn_wc_remove_from_revision_control2): Walk status before calling

svn_wc__internal_remove_from_revision_control when instant_error is true.

* subversion/libsvn_wc/crop.c

(crop_children): Update caller.

* subversion/libsvn_wc/wc.h

(svn_wc__internal_remove_from_revision_control): Remove argument.

  1. … 2 more files in changeset.
* subversion/libsvn_wc/crop.c

(crop_children): Use a base remove function for removing a base only node.

Followup to r1181800 by removing the svn_wc__db_kind_t type and replacing it

with the now-public svn_kind_t. This just affects the internals of libsvn_wc,

not any of the public, or quasi-public APIs.

* subversion/tests/libsvn_wc/:

s/svn_wc__db_kind_/svn_kind_/

  1. … 31 more files in changeset.
Rename svn_wc__db_base_add_absent_node() to svn_wc__db_base_add_excluded_node()

for consistency.

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

(test_inserting_nodes, test_pdh): Update callers.

* subversion/libsvn_wc/crop.c

(svn_wc_exclude): Another caller.

* subversion/libsvn_wc/update_editor.c

(absent_node): Another caller. The term 'absent' is hardcoded in the

svn_delta_editor_t interface, so we won't be renaming 'absent' to

'server-excluded' above here.

* subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_add_absent_node): Rename this ...

(svn_wc__db_base_add_excluded_node): ... to this. Also fix a small error

in the docstring.

  1. … 4 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.
Limit the scope of the wc_db call for setting depth on a directory to its

only user: svn_wc_crop_tree2.

* subversion/libsvn_wc/crop.c

(crop_children): Update caller. Add argument to avoid one db call

per directory.

(svn_wc_crop_tree2): Update caller.

* subversion/libsvn_wc/wc-queries.sql

(STMT_UPDATE_NODE_BASE_DEPTH): Only change depth on directories, to allow

using the number of affected rows for error handling.

(STMT_UPDATE_NODE_WORKING_DEPTH,

STMT_UPDATE_NODE_BASE_EXCLUDED,

STMT_UPDATE_NODE_WORKING_EXCLUDED): Remove queries.

* subversion/libsvn_wc/wc_db.c

(set_base_depth_baton_t): New struct.

(update_depth_values): Rename to ...

(db_op_set_base_depth): ... this and only update BASE nodes where the

depth can change. Remove entry flush.

(svn_wc__db_temp_op_set_dir_depth): Rename to ...

(svn_wc__db_op_set_base_depth): ... this and call db_op_set_base_depth in

transaction. Flush entries here after successfull db change.

* subversion/libsvn_wc/wc_db.h

Remove obsolete comment from before we introduced svn_wc__db_status_excluded.

(svn_wc__db_temp_op_set_dir_depth): Rename to ...

(svn_wc__db_op_set_base_depth): ... this.

  1. … 3 more files in changeset.
Use a specific notification type for excluding nodes to allow api users to

handle this option explicitly.

* subversion/include/svn_wc.h

(svn_wc_notify_action_t): Add svn_wc_notify_exclude.

* subversion/libsvn_wc/crop.c

(svn_wc_exclude): Use svn_wc_notify_exclude.

* subversion/svn/notify.c

(notify): Handle svn_wc_notify_exclude like svn_wc_notify_update_delete.

  1. … 2 more files in changeset.
Explicitly handle the wc_ng status values in the crop and exclude code.

* subversion/libsvn_wc/crop.c

(svn_wc_exclude): If the status is normal we don't have to get the BASE

information, as we already have that. Return a proper error when excluding

hidden nodes.

(svn_wc_crop_tree2): Handle status as a switch. Do nothing on exclude.

Remove two unused arguments from svn_wc__db_base_get_info(). The recorded size

and recorded modification time values only make sense when you look at the

highest layer of NODES, so you would have to call _read_info to verify that

anyway.

* subversion/libsvn_wc/adm_crawler.c

(find_base_rev,

svn_wc_crawl_revisions5): Update caller.

* subversion/libsvn_wc/adm_ops.c

(svn_wc__internal_remove_from_revision_control): Update caller.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(ambient_read_info): Update caller.

* subversion/libsvn_wc/crop.c

(svn_wc_exclude): Update caller.

* subversion/libsvn_wc/diff_editor.c

(get_pristine_file,

file_diff,

open_file,

close_file): Update caller

* subversion/libsvn_wc/diff_local.c

(file_diff): Update caller.

* subversion/libsvn_wc/entries.c

(get_info_for_deleted,

read_one_entry): Update caller.

* subversion/libsvn_wc/info.c

(build_info_for_entry): Update caller.

* subversion/libsvn_wc/node.c

(svn_wc__node_get_base_rev,

svn_wc__node_get_pre_ng_status_data,

svn_wc__node_get_lock_info,

svn_wc__node_get_origin,

svn_wc__node_get_commit_status): Update caller.

* subversion/libsvn_wc/update_editor.c

(open_root,

create_tree_conflict,

check_tree_conflict,

delete_entry,

open_directory,

close_directory,

open_file,

close_edit): Update caller.

* subversion/libsvn_wc/wc_db.c

(base_get_info): Remove 2 arguments.

(svn_wc__db_base_get_info): Remove 2 arguments.

(get_info_for_copy,

bump_node_revision,

bump_revisions_post_update,

end_directory_update): Update callers.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_get_info): Remove 2 arguments.

* subversion/libsvn_wc/workqueue.c

(remove_base_node): Update caller.

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

(test_getting_info,

validate_node): Update callers.

  1. … 13 more files in changeset.
Following up on r1094135, apply a similar change to svn_wc__db_base_get_info()

and its callers.

This patch adds the following arguments:

had_props Does this node have pristine properties in BASE

needs_full_update Does this node need 'incomplete' handling in editor v1.

(currently equivalent to status ==

svn_wc__db_status_incomplete)

It also updates the last_mod_time and translated_size properties like how

they are now placed in _read_info().

* subversion/libsvn_wc/adm_crawler.c

(find_base_rev,

svn_wc_crawl_revisions5): Update callers.

* subversion/libsvn_wc/adm_ops.c

(svn_wc__internal_remove_from_revision_control) Update caller.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(ambient_read_info): Update callers.

* subversion/libsvn_wc/crop.c

(svn_wc_exclude): Update callers.

* subversion/libsvn_wc/diff.c

(get_nearest_pristine_text_as_file,

file_diff): Update callers.

* subversion/libsvn_wc/entries.c

(get_base_info_for_deleted,

read_one_entry): Update callers.

* subversion/libsvn_wc/node.c

(svn_wc__node_get_base_rev,

svn_wc__node_get_working_rev_info,

svn_wc__node_get_lock_info,

svn_wc__node_get_origin,

svn_wc__node_get_commit_status): Update callers.

* subversion/libsvn_wc/translate.c

(svn_wc__maybe_set_read_only): Update callers.

* subversion/libsvn_wc/update_editor.c

(complete_directory,

open_root,

create_tree_conflict,

check_tree_conflict,

open_directory,

close_directory,

open_file): Update callers.

* subversion/libsvn_wc/wc_db.c

(base_get_info): Update arguments list and retrieval.

(svn_wc__db_base_get_info): Update argument list and pass new arguments.

(get_info_for_copy,

bump_node_revision,

bump_revisions_post_commit,

end_directory_update): Update callers.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_get_info): Update argument list and documentation.

* subversion/libsvn_wc/workqueue.c

(remove_base_node,

run_base_remove,

run_deletion_postcommit): Update callers.

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

(test_getting_info,

validate_node): Update callers.

  1. … 12 more files in changeset.
Add three more arguments to our function with the most arguments. Do this to

allow handling more operations with a single read transaction and to allow

fixing code that should know about multiple WORKING layers.

This patch adds the following three new (optional) boolean output arguments:

had_props - Does it have pristine properties

op_root - Is it a layer defining operation

have_more_work - Does it have multiple working layers

Because I had to update all callers anyway, I moved a few arguments to a more

sensible location. (See the wc_db.h change for more information on that).

This patch just updates the callers to get the same information as before.

No functional changes in any of the callers.

* subversion/libsvn_wc/adm_crawler.c

(svn_wc_restore,

report_revisions_and_depths,

find_base_rev,

svn_wc_crawl_revisions5,

read_and_checksum_pristine_text): Update callers.

* subversion/libsvn_wc/adm_files.c

(svn_wc__text_base_path_to_read,

svn_wc__get_pristine_contents,

svn_wc__internal_ensure_adm): Update callers.

* subversion/libsvn_wc/adm_ops.c

(process_committed_leaf,

svn_wc__process_committed_internal,

svn_wc_delete4,

check_can_add_to_parent,

check_can_add_node,

revert_restore,

new_revert_partial,

svn_wc__internal_remove_from_revision_control,

svn_wc__internal_changelist_match): Update callers.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(ambient_read_info): Update caller.

* subversion/libsvn_wc/cleanup.c

(repair_timestamps): Update caller.

* subversion/libsvn_wc/conflicts.c

(recursive_resolve_conflict): Update caller.

* subversion/libsvn_wc/copy.c

(copy_pristine_text_if_necessary,

svn_wc_copy3): Update callers.

* subversion/libsvn_wc/crop.c

(crop_children,

svn_wc_exclude,

svn_wc_crop_tree2): Update callers.

* subversion/libsvn_wc/diff.c

(get_nearest_pristine_text_as_file,

file_diff,

report_wc_file_as_added,

report_wc_directory_as_added,

delete_entry,

apply_textdelta,

close_file,

* subversion/libsvn_wc/entries.c

(get_base_info_for_deleted,

read_one_entry,

svn_wc_walk_entries3,

* subversion/libsvn_wc/lock.c

(svn_wc__internal_check_wc,

adm_available,

child_is_disjoint): Update callers.

* subversion/libsvn_wc/node.c

(svn_wc__node_get_repos_info,

svn_wc_read_kind,

svn_wc__node_get_depth,

svn_wc__node_get_changed_info,

svn_wc__node_get_changelist,

svn_wc__node_get_base_checksum,

svn_wc__node_get_translated_size,

svn_wc__node_get_repos_relpath,

svn_wc__internal_get_copyfrom_info,

svn_wc__internal_walk_children,

svn_wc__node_is_status_deleted,

svn_wc__node_is_status_absent,

svn_wc__node_is_status_not_present,

svn_wc__node_is_status_excluded,

svn_wc__node_is_added,

svn_wc__node_get_base_rev,

svn_wc__node_get_working_rev_info,

svn_wc__node_get_commit_base_rev,

svn_wc__internal_node_get_schedule,

svn_wc__node_get_info_bits,

svn_wc__get_mergeinfo_walk_info,

svn_wc__node_depth_is_exclude,

svn_wc__node_get_origin,

svn_wc__node_get_commit_status): Update callers.

* subversion/libsvn_wc/props.c

(svn_wc__get_pristine_props,

svn_wc__internal_propset,

svn_wc__props_modified): Update callers.

* subversion/libsvn_wc/questions.c

(compare_and_verify,

svn_wc__internal_file_modified_p,

svn_wc__internal_conflicted_p,

svn_wc__expand_keywords): Update caller.

* subversion/libsvn_wc/relocate.c

(svn_wc_relocate4): Update callers.

* subversion/libsvn_wc/status.c

(read_info,

internal_status): Update callers. Avoid C++ keyword mutable.

* subversion/libsvn_wc/translate.c

(svn_wc__expand_keywords): Update callers.

* subversion/libsvn_wc/update_editor.c

(already_in_a_tree_conflict,

delete_entry,

add_directory,

open_directory,

add_file,

open_file,

make_editor,

svn_wc__check_wc_root,

svn_wc_add_repos_file4):

* subversion/libsvn_wc/wc_db.c

(read_info): Update argument list of prototype.

(cross_db_copy,

get_info_for_copy,

temp_op_delete_txn): Update callers.

(read_info): Update argument list and calculate new values.

(svn_wc__db_read_info): Update argument list and update caller.

(read_url_txn,

svn_wc__db_global_relocate,

svn_wc__db_node_hidden,

has_switched_subtrees): Update callers.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_read_info): Update, extend and cleanup documentation. Update argument

list.

* subversion/libsvn_wc/workqueue.c

(remove_base_node,

log_do_committed,

run_file_install): Update callers.

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

(test_working_info,

test_global_relocate): Update callers.

  1. … 21 more files in changeset.
* subversion/libsvn_wc/crop.c

(crop_children): Fix build by removing argument that shouldn't be there.

Instead of installing a wq operation to remove records from the database

in the commit processing, just perform the operation directly.

Working queue operations are for synchronizing the working copy with the

database. In this case the working copy doesn't change at all.

To make this work, change an existing wc_db temp operation recursive.

(It assumed that it was a leave operation before or it would break the DB)

* subversion/libsvn_wc/adm_ops.c

(process_committed_leaf): Determine if we should really install a not present

node and then call svn_wc__db_op_remove_node() instead of installing a

wq operation that does the same thing.

(svn_wc__internal_remove_from_revision_control): Don't perform expensive

compares if we are not going to use the result. Update caller.

* subversion/libsvn_wc/crop.c

(crop_children): Update caller.

* subversion/libsvn_wc/wc_db.c

(remove_node_baton): New struct.

(remove_node_txn): New function.

(svn_wc__db_temp_op_remove_entry): Rename to ...

(svn_wc__db_op_remove_node): ... this to reflect that the function is really

needed and now recursive.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_temp_op_remove_entry): Rename to ...

(svn_wc__db_op_remove_node): ... this to reflect that the function is really

needed and now recursive.

  1. … 3 more files in changeset.
Add an UPDATE_ROOT argument to svn_wc__db_base_get_info() and update all

callers to just pass NULL for it.

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_get_info): Add update_root argument.

* subversion/libsvn_wc/adm_crawler.c

* subversion/libsvn_wc/adm_files.c

* subversion/libsvn_wc/adm_ops.c

* subversion/libsvn_wc/ambient_depth_filter_editor.c

* subversion/libsvn_wc/crop.c

* subversion/libsvn_wc/diff.c

* subversion/libsvn_wc/entries.c

* subversion/libsvn_wc/node.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/workqueue.c

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

(*): Update all callers.

  1. … 12 more files in changeset.
Remove obsolete multi-db code.

* subversion/libsvn_wc/revision_status.c

(analyze_status): Remove conditional multi-db code.

* subversion/libsvn_wc/props.c

(svn_wc__get_pristine_props): Remove conditional multi-db code.

* subversion/libsvn_wc/crop.c

(svn_wc_exclude, svn_wc_crop_tree2): Remove conditional multi-db code.

* subversion/libsvn_wc/adm_files.c

(svn_wc__get_pristine_contents,

svn_wc__internal_ensure_adm): Remove conditional multi-db code.

(svn_wc__adm_destroy): Remove conditional multi-db code, add

suggestion to comment.

  1. … 3 more files in changeset.
Remove the remaining checks for obstruction statee in libsvn_wc. These

statee are no longer returned from the wc_db api since we switched to

single-db. This is a a final cleanup step before removing some parts

of the multi-db support.

No functional change.

* subversion/libsvn_wc/adm_crawler.c

(report_revisions_and_depths): Disable check for obstructed.

* subversion/libsvn_wc/adm_files.c

(svn_wc__get_pristine_contents): Disable check for obstructed and

remove base-deleted check (value is wc_db internal).

(svn_wc__internal_ensure_adm): Disable check for obstructed.

* subversion/libsvn_wc/adm_ops.c

(process_committed_leaf,

svn_wc__process_committed_internal,

svn_wc_add4): Disable obstructed status checks.

* subversion/libsvn_wc/copy.c

(svn_wc_copy3): Disable obstructed check.

* subversion/libsvn_wc/crop.c

(svn_wc_exclude,

svn_wc_crop_tree2): Disable obstructed checks.

* subversion/libsvn_wc/diff.c

(file_diff): Remove obstructed check (file couldn't be obstructed)

* subversion/libsvn_wc/entries.c

(get_base_info_for_deleted,

read_one_entry): Disable obstructed checks.

* subversion/libsvn_wc/lock.c

(adm_available): Disable obstructed checks.

* subversion/libsvn_wc/node.c

(svn_wc__node_get_repos_info,

svn_wc__internal_node_get_url,

svn_wc__node_get_repos_relpath,

svn_wc__internal_get_copyfrom_info,

svn_wc__node_is_status_deleted,

svn_wc__node_is_added,

svn_wc__internal_is_replaced,

svn_wc__node_get_commit_base_rev,

svn_wc__internal_node_get_schedule): Disable checks for obstructed statee.

* subversion/libsvn_wc/props.c

(svn_wc__get_pristine_props): Disable check for obstructed.

* subversion/libsvn_wc/revision_status.c

(analyze_status): Disable check for obstructed status.

* subversion/libsvn_wc/status.c

(internal_status): Disable obstructed test.

* subversion/libsvn_wc/update_editor.c

(node_get_relpath_ignore_errors,

create_tree_conflict,

check_tree_conflict,

add_directory): Disable obstructed checks.

* subversion/libsvn_wc/workqueue.c

(remove_base_node,

log_do_committed): Disable obstructed checks.

  1. … 13 more files in changeset.