ambient_depth_filter_editor.c

Checkout Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.
Add a 'properties' output parameter to most of the WC DB functions that read

node info from a layer:

svn_wc__db_base_get_info_internal()

svn_wc__db_base_get_info()

svn_wc__db_depth_get_info()

svn_wc__db_read_pristine_info()

svn_wc__db_read_info() -- NOT YET

The aim is to regularize the APIs by getting the props along with other info

about a node. This should allow the documentation and the implementation to

become more consistent than the separate APIs we currently have for reading

the props alone -- for example, there is currently no API to read the props

for a node at a given depth.

The new 'props' output does not replace the 'had_props' boolean output which

remains available for callers that just need to test for the presence of

properties, since that is quicker.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_get_info,

svn_wc__db_read_pristine_info): Add a 'props' output parameter.

* subversion/libsvn_wc/wc_db_private.h

(svn_wc__db_base_get_info_internal,

svn_wc__db_depth_get_info): Add a 'props' output parameter.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_base_get_info_internal,

svn_wc__db_base_get_info,

svn_wc__db_depth_get_info): Add a 'props' output parameter.

(...everywhere...): Track the change: pass NULL.

* subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/adm_files.c,

subversion/libsvn_wc/ambient_depth_filter_editor.c,

subversion/libsvn_wc/conflicts.c,

subversion/libsvn_wc/diff_editor.c,

subversion/libsvn_wc/diff_local.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/externals.c,

subversion/libsvn_wc/info.c,

subversion/libsvn_wc/node.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/util.c,

subversion/libsvn_wc/wc_db_update_move.c,

subversion/libsvn_wc/workqueue.c

(...everywhere...): Track the change: pass NULL.

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

(test_getting_info): Test the new parameter (just a tiny bit).

(...everywhere...): Track the change: pass NULL.

  1. … 18 more files in changeset.
* subversion/libsvn_wc/ambient_depth_filter_editor.c

(ambient_read_info): Write a true and proper doc string.

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.
Tweak doc strings of 'editor' functions to mention the 'svn_delta_editor_t'

type explicitly, so I can more quickly jump to the API documentation.

* subversion/libsvn_client/repos_diff.c,

* subversion/libsvn_client/repos_diff_summarize.c,

* subversion/libsvn_wc/ambient_depth_filter_editor.c,

* subversion/libsvn_wc/diff_editor.c,

* subversion/libsvn_wc/status.c

(All editor functions): Tweak doc string.

  1. … 4 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.
Simplify code, eliminating the use of svn_dirent_skip_ancestor() in this

file, in preparation for changing the semantics of that function. No

functional change.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(make_dir_baton): Eliminate some unnecessary string manipulations.

(make_file_baton, delete_entry, open_directory): Eliminate a call to

svn_dirent_skip_ancestor().

Following up on r1094146, remove an unused argument from

svn_wc__db_base_get_info().

* subversion/libsvn_wc/adm_crawler.c

(svn_wc_crawl_revisions5): Update caller.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(ambient_read_info): Update caller.

* subversion/libsvn_wc/diff_editor.c

(get_pristine_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/externals.c

(open_file): Update caller.

(svn_wc__crawl_file_external): Update caller.

* subversion/libsvn_wc/info.c

(build_info_for_entry): Update caller.

* subversion/libsvn_wc/node.c

(get_base_rev,

svn_wc__node_get_pre_ng_status_data,

svn_wc__internal_get_commit_base_rev,

svn_wc__node_get_lock_info,

svn_wc__internal_get_origin,

svn_wc__node_get_commit_status): Update caller.

* subversion/libsvn_wc/status.c

(read_info): Update caller.

* subversion/libsvn_wc/update_editor.c

(open_root,

create_tree_conflict,

delete_entry,

open_directory,

close_directory,

open_file,

close_edit,

make_editor): Update caller.

* subversion/libsvn_wc/wc_db.c

(base_get_info,

svn_wc__db_base_get_info): Remove argument.

(insert_external_node,

get_info_for_copy,

remove_node_txn,

read_url_txn,

svn_wc__db_global_relocate,

determine_repos_info,

bump_node_revision,

bump_revisions_post_update,

lock_add_txn,

lock_remove_txn,

svn_wc__db_scan_base_repos,

scan_addition_txn,

end_directory_update,

has_switched_subtrees): Update caller.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_get_info): Remove argument and documentation of argument.

* subversion/libsvn_wc/workqueue.c

(remove_base_node,

run_base_remove): Update caller.

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

(test_getting_info,

validate_node): Update caller.

  1. … 13 more files in changeset.
* subversion/libsvn_wc/ambient_depth_filter_editor.c

(make_dir_baton): Don't set a variable in a conditional which is

unconditionally set shortly thereafter.

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.
The ambient depth filter is the local equivalent of the repository filtering.

The repository knows only about the wc-ng BASE layer, so the filter should do

the same thing and ignore layers above BASE for retrieving filtering

information.

When the repository reports a node as added, it also tells us "You don't know

about that node", so we shouldn't look at its existing information in the

working copy as that will just return a path not found.

(We just told the server what we have and don't have via the adm crawler,

so it just tells us what we already read from the wc).

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(edit_baton): Remove read_base.

(ambient_read_info): Remove hidden and read_base arguments.

(make_dir_baton): Add added boolean and use it to check if we should call

ambient_read_info.

(make_file_baton): Add added boolean and use it to check if we should call

ambient_read_info. Use status instead of hidden.

(open_root,

delete_entry): Update caller. Use status instead of hidden.

(add_directory): Update caller.

(open_directory): Update caller. Use status instead of hidden.

(add_file,

open_file): Update caller.

(svn_wc__ambient_depth_filter_editor): Remove read_base.

* subversion/libsvn_wc/status.c

(svn_wc_get_status_editor5): Update caller.

* subversion/libsvn_wc/update_editor.c

(make_editor): Update caller.

* subversion/libsvn_wc/wc.h

(svn_wc__ambient_depth_filter_editor): Update comment and prototype.

  1. … 4 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.
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.
Just padding my stats.

(Actually, doing my regular trailing whitespace removal, similar to r875968.)

* 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. … 166 more files in changeset.
Remove several includes of the mostly deprecated lock.h. Most callers only

need svn_wc__write_check(), which can be moved to wc.h

* subversion/libsvn_wc/adm_ops.c

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(includes): Remove lock.h

* subversion/libsvn_wc/lock.h

(svn_wc__write_check): Move to wc.h

* subversion/libsvn_wc/merge.c

(includes): Remove lock.h

* subversion/libsvn_wc/props.c

(includes): Remove lock.h and adm_files.h

* subversion/libsvn_wc/translate.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/upgrade.c

(includes): Remove lock.h

* subversion/libsvn_wc/wc.h

(svn_wc__write_check): Move here, from lock.h

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

(svn_wc_restore): Add a 'default' to the 'switch' to let the compiler

know we've considered all the cases, and thus avoid a warning.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(ambient_read_info): Same.

  1. … 1 more file in changeset.
Update the ambient depth filter to handle excluded files just like

excluded directories. (Before WC-NG you could only exclude directories).

This should fix handling excluded files from pre-depth (read <=1.4)

repositories.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(make_file_baton): Check status for excluded before assuming that

a file shouldn't be excluded, but allow pulling in excluded items.

Make the ambient depth filter capable of handling just the BASE_NODE depth,

and reduce the number of database operations on the way.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(edit_baton): Add read_base variable.

(read_ambient_info): New function.

(make_dir_baton, make_file_baton, open_root, delete_entry,

open_directory): Use read_ambient_info instead of one or more

other db operations.

(svn_wc__ambient_depth_filter_editor): Reorder arguments to new

standard ordering and accept read_base argument.

* subversion/libsvn_wc/diff.c

(svn_wc_get_diff_editor6): Update caller. Keep working_tree filtering.

* subversion/libsvn_wc/update_editor.c

(make_editor): Update caller. Request base_tree filtering.

* subversion/libsvn_wc/wc.h

(svn_wc__ambient_depth_filter_editor): Update prototype and documentation.

  1. … 3 more files in changeset.
Fix a bug in the ambient-depth update filter editor.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(make_dir_baton): Don't query the hiddenness of the node anymore.

The pre-WC-NG code ignored hiddenness.

* subversion/tests/cmdline/depth_tests.py

(test_list): Remove XFail() wrapper from

'update_depth_empty_root_of_infinite_children' test.

Patch by: rhuijben

(Tweaked by me.)

  1. … 1 more file in changeset.
Make the ambient depth filter use absolute paths.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(edit_baton): Remove the relative anchor path.

(dir_baton): Use an absolute path.

(make_dir_baton): Create an absolute path, and use it.

(make_file_baton, delete_entry, open_directory): Use the absolute path.

(svn_wc__ambient_depth_filter_editor): Use the absolute path, and assert that

it is.

* subversion/libsvn_wc/wc.h

(svn_wc__ambiend_depth_filter_editor): Rename parameter.

* subversion/libsvn_wc/diff.c

(svn_wc_get_diff_editor6): Create and use an absolute path to use with the

ambient depth editor.

  1. … 2 more files in changeset.
Add empty doc strings to the 141 static functions in libsvn_wc that didn't

have one. Why? To make me feel worse. But really, to give a tiny extra

visual cue that might encourage any passing programmer to write something in

it. This distinguishes them from non-static functions, which don't have a

doc string at their definition because it's at their declaration. Did I

make an exception for functions whose purpose is "so obvious that they don't

need one"? No.

* 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/conflicts.c,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/lock.c,

subversion/libsvn_wc/log.c,

subversion/libsvn_wc/old-and-busted.c,

subversion/libsvn_wc/props.c,

subversion/libsvn_wc/relocate.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/translate.c,

subversion/libsvn_wc/tree_conflicts.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/upgrade.c,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/workqueue.c

Add empty doc strings.

  1. … 18 more files in changeset.
Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.

* NOTICE:

Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.
* subversion/bindings/javahl/native/SVNAdmin.cpp,

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

* subversion/libsvn_client/mergeinfo.c,

* subversion/libsvn_client/status.c,

* subversion/libsvn_subr/dirent_uri.c,

* subversion/libsvn_wc/ambient_depth_filter_editor.c,

* subversion/libsvn_wc/context.c,

* subversion/tests/libsvn_delta/window-test.c:

Remove an extra semicolon.

Patch by: Kannan R <kannanr@collab.net>

me

  1. … 7 more files in changeset.
Promote our depth exclude handling to a full wc-ng exclude status. This

requires a format bump and updating the crop handling.

This patch makes excluded nodes similar to absent nodes: We only store

their repository references and not full details. The depth recorded for

excluded nodes in the wc_db layer will be infinity. In the entries api

the original representation of depth excluded is kept.

A nice side effect is that we can exclude files now.

At least in the wc-db layer; we should add some tests for the client layer.

* subversion/include/svn_wc.h

(svn_wc_crop_tree2): Document that it doesn't handle depth exclude.

(svn_wc_crop_tree): Document that this version does handle depth exclude.

(svn_wc_exclude): New function.

* subversion/libsvn_client/switch.c

(svn_client__switch_internal): Handle crop+exclude before opening the

ra session and use svn_wc_exclude() for excluding nodes.

* subversion/libsvn_client/update.c

(svn_client__switch_internal): Use svn_wc_exclude() for excluding nodes.

* subversion/libsvn_wc/adm_crawler.c

(report_revisions_and_depths,

svn_wc_crawl_revisions5): Update exclude checks.

* subversion/libsvn_wc/adm_ops.c

(tweak_entries,

svn_wc__do_update_cleanup,

erase_from_wc,

svn_wc_delete4,

svn_wc_add4): Update exclude checks.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(make_dir_baton): Update exclude check.

* subversion/libsvn_wc/copy.c

(svn_wc_copy3): Update exclude check.

* subversion/libsvn_wc/crop.c

(crop_children): Assert setting depth to not excluded, and check

for excluded in the new way.

(remove_for_exclude): Remove function. We don't have to retain the old

node info.

(svn_wc_exclude): New function, based on code in svn_wc_crop_tree2, but

also handling files.

(svn_wc_crop_tree2): Extend error message. Remove exclude support

* subversion/libsvn_wc/deprecated.c

(svn_wc_crop_tree): Call svn_wc_exclude() for excluding.

* subversion/libsvn_wc/entries.c

(read_entries_new): Set depth to exclude for excluded nodes, to allow

roundtrips via entries.

(svn_wc__set_depth): Assert not setting exclude depth.

(insert_base_node, insert_working_node): Set excluded status.

(write_entry): Set depth infinity for excluded nodes.

* subversion/libsvn_wc/update_editor.c

(complete_directory): Remove excluded special case.

(do_entry_deletion): Handle excluded, base deleted and absent

all the same. But skip them if the node is conflicted.

(delete_entry): Flush the parent log.

(add_directory): Update exclude check.

* subversion/libsvn_wc/upgrade.c

(bump_database_to_15, bump_to_15): Rename from this ...

(bump_database_to_16, bump_to_16): ... to this.

(svn_wc__upgrade_sdb): Handle format 15 upgrade.

* subversion/libsvn_wc/wc-metadata.sql

(Format 15): Upgrade exclusion with sql script.

(Format 16): Renamed from format 15.

* subversion/libsvn_wc/wc.h

(SVN_WC__VERSION): Update to format 15.

* subversion/libsvn_wc/wc_db.c

(upgrade_sql): Add WC_METADATA_SQL_15.

(svn_wc__db_temp_op_set_dir_depth): Assert not setting depth to exclude.

(svn_wc__db_node_hidden): Update exclude check.

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

(data_loading_sql): Add WC_METADATA_SQL_15.

(test_upgrading_to_f14): Rename to ...

(test_upgrading_to_f15): ... this.

(test_funcs): Update test call.

  1. … 15 more files in changeset.
Following up on r39753, use the db api in the ambient depth filter to

allow removing all access batons from the diff code.

* subversion/libsvn_client/diff.c

(diff_wc_wc): Remove now unused access batons.

(diff_repos_wc): Calculate target with svn_wc_get_actual_target2 and

remove access batons.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(edit_baton): Remove access baton.

(make_dir_baton, make_file_baton,

open_root, delete_entry, open_directory):

Calculate absolute path and call the db apis for retrieving the

available and hidden status.

(svn_wc__ambient_depth_filter_editor): Don't store the access baton.

  1. … 1 more file in changeset.
Remove all access batons from libsvn_wc's diff editor, by using

the wc_db based entry apis.

* subversion/include/svn_wc.h

(svn_wc_get_diff_editor6): Update prototype to take working copy context

and relative paths. Move arguments to match common order.

(svn_wc_diff6): Take working copy context and relative target path.

* subversion/libsvn_client/diff.c

(diff_wc_wc, diff_repos_wc): Update callers.

* subversion/libsvn_wc/ambient_depth_filter_editor.c

(includes): Include lock.h.

(edit_baton): Add db and abspath variables.

(svn_wc__ambient_depth_filter_editor): Take db argument and use this

to find an access baton. Fill new values.

* subversion/libsvn_wc/deprecated.c

(svn_wc_get_diff_editor5): Update wrapper.

(svn_wc_diff5): Update wrapper.

* subversion/libsvn_wc/diff.c

(edit_baton): Move comment and remove anchor access baton.

(make_edit_baton): Take db and anchor path.

(file_diff): Use path from baton.

(directory_elements_diff, report_wc_file_as_added

report_wc_directory_as_added): Use paths from batons. Remove access baton

arguments where necessary.

(delete_entry): Retrieve entry from db.

(close_directory): Use paths in baton.

(apply_textdelta,

close_file): Retrieve entry when possible.

(svn_wc_get_diff_editor6, svn_wc_diff6): Update prototypes for working copy

context.

* subversion/libsvn_wc/update_editor.c

(make_editor): Update caller.

* subversion/libsvn_wc/wc.h

(svn_wc__ambient_depth_filter_editor): Update prototype.

  1. … 6 more files in changeset.
Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.

* LICENSE: New.

* COPYING,

subversion/LICENSE: Remove.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the SVN Corp, and that it contains contributions from

many people, as referenced in NOTICE.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS:

Relicense the SVN parts under Apache 2.0.

* everywhere:

Change copyright notices in file headers to reflect the Apache 2.0 license.

  1. … 882 more files in changeset.