Checkout Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
On the inheritable-props branch: Sync with ^/subversion/trunk through

r1394910.

  1. … 143 more files in changeset.
On the inheritable-props branch: Implement iprop caching for file externals.c

* subversion/include/private/svn_wc_private.h

(svn_wc__get_file_external_editor): Add a new argument for the file's

iprops.

* subversion/libsvn_client/externals.c

(switch_file_external): Get the switched files iprops and pass them

to svn_wc__get_file_external_editor, which stashes them in the new

baton member.

* subversion/libsvn_wc/externals.c

(edit_baton): New member tracking iprops.

(close_file): Pass the new baton member to svn_wc__db_external_add_file

so it can cache the iprops.

(close_edit): If close_file hasn't beat us to it, pass the new baton

member to (converted to a hash) to

svn_wc__db_op_bump_revisions_post_update so it can cache the iprops.

(svn_wc__get_file_external_editor): Populate the new baton member.

* subversion/libsvn_wc/wc_db.c

(insert_external_baton_t): New member tracking iprops.

(insert_external_node): Populate new baton member.

(svn_wc__db_external_add_file): New argument tracking iprops.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_external_add_file): New argument tracking iprops.

* subversion/tests/cmdline/iprop_tests.py

(iprops_with_file_externals): Remove XFail decorator and expand test

coverage.

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

(test_externals_store): Upate call to svn_wc__db_external_add_file.

  1. … 7 more files in changeset.
On the inheritable-props branch: Stop contacting the repository for iprops

if none are found cached on a WC root. If none are found we assume there

are none. Since r1371831 we can't end up with an incomplete DB where a node

has been updated in all ways except for its iprops.

* subversion/include/private/svn_wc_private.h

(svn_wc__get_iprops): Remove the output argument communicating if inherited

properties were found; no callers use this anymore.

* subversion/libsvn_client/prop_commands.c

(svn_client_propget5): Update call to svn_wc__get_iprops.

* subversion/libsvn_wc/props.c

(svn_client_proplist4): Update call svn_wc__get_iprops.

  1. … 2 more files in changeset.
On the inheritable-props branch: Atomically update cached iprops with

work queue items during update/switch editor drives. Remove the temporary

svn_client__update_inheritable_props API.

* subversion/include/private/svn_wc_private.h

(svn_wc__cache_iprops): Deleted, no callers.

(svn_wc__get_update_editor,

svn_wc__get_switch_editor): Add argument

* subversion/libsvn_client/client.h

(svn_client__update_inheritable_props): Delete.

(svn_client__get_inheritable_props): New.

* subversion/libsvn_client/iprops.c

(need_to_cache_iprops): Gracefully handle the case where we ask about a

non-existant path.

(svn_client__update_inheritable_props): Delete.

(svn_client__get_inheritable_props):

* subversion/libsvn_client/switch.c (switch_internal):

* subversion/libsvn_client/update.c (update_internal):

Grab inheritable properties from the repository

for each WC root in the update target and pass these iprops to

svn_wc__get_[update|switch]_editor so it can set the iprops along with

the rest of the columns in the NODES table during the editor drive

callbacks. Also remove the call to the now defunct

svn_client__update_inheritable_props.

* subversion/libsvn_wc/deprecated.c

(svn_wc_get_update_editor4): Update call to svn_wc__get_update_editor.

(svn_wc_get_switch_editor4): Update call to svn_wc__get_switch_editor.

* subversion/libsvn_wc/externals.c

(close_edit): Update call to svn_wc__db_op_bump_revisions_post_update.

* subversion/libsvn_wc/update_editor.c

(edit_baton): Add a new member to stash the set of iprops for all

working copy roots in the update target.

(close_directory): Pass along any iprops to

svn_wc__db_base_add_directory.

(close_edit): Pass along hash of WC root iprops to

svn_wc__db_op_bump_revisions_post_update.

(make_editor,

svn_wc__get_update_editor,

svn_wc__get_switch_editor):

Add new argument corresponding to new edit baton member.

(svn_wc__get_update_editor):

* subversion/libsvn_wc/wc-queries.sql

(STMT_INSERT_NODE): Add inherited props parameter.

(STMT_INSERT_IPROP): Rename to...

(STMT_UPDATE_IPROP): ...this and remove op_depth parameter, op_depth

is always zero for this statement.

* subversion/libsvn_wc/wc_db.c

(insert_base_baton_t): Add a new member to stash base node's iprops.

(insert_base_node): Bind iprops.

(svn_wc__db_base_add_directory): Add new argument corresponding to new

iprops.

(svn_wc__db_cache_iprops): Deleted, no longer used by any callers.

(db_op_set_rev_and_repos_relpath): Renamed to...

(db_op_set_rev_repos_relpath_iprops): ...this. Now handles setting iprops

too.

(bump_node_revision): Add an optional hash of iprops argument from which

to set the node's inherited properties.

(bump_revisions_baton_t): New hash of iprops member.

(bump_revisions_post_update): Pass hash of iprops to bump_node_revision().

(svn_wc__db_op_bump_revisions_post_update): Add an optional hash of iprops

argument from which to set the node's inherited properties.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_base_add_directory): Add new argument corresponding to new

iprops.

(svn_wc__db_cache_iprops): Deleted, no longer used by any callers.

(svn_wc__db_op_bump_revisions_post_update): Add an optional hash of iprops

argument from which to set the node's inherited properties.

* subversion/tests/libsvn_wc/db-test.c (test_inserting_nodes):

* subversion/tests/libsvn_wc/op-depth-test.c (svn_wc__db_base_add_directory):

Update calls to svn_wc__db_base_add_directory.

  1. … 13 more files in changeset.
On the inheritable-props branch: Sync with ^/subversion/trunk through

r1367696.

  1. … 84 more files in changeset.
On the inheritable-props branch: Sync with ^/subversion/trunk through

r1360860.

  1. … 121 more files in changeset.
On the inheritable-props branch: Simplify the iprop schema changes by

moving the iprop cache from its own dedicated table into the nodes table.

* subversion/include/private/svn_skel.h

(svn_skel__parse_iprops,

svn_skel__unparse_iproplist): New.

* subversion/include/private/svn_sqlite.h

(svn_sqlite__bind_iprops,

svn_sqlite__column_iprops): New.

* subversion/include/private/svn_wc_private.h

(svn_wc__cache_iprops): Doc string tweak.

(svn_wc__delete_iprops): Remove.

* subversion/libsvn_client/iprops.c

(svn_client__update_inheritable_props): Remove call to

svn_wc__delete_iprops.

* subversion/libsvn_subr/skel.c

(svn_props.h

svn_pools.h): New includes.

(is_valid_iproplist_skel,

svn_skel__parse_iprops,

svn_skel__unparse_iproplist): New.

* subversion/libsvn_subr/sqlite.c

(svn_sqlite__bind_iprops,

svn_sqlite__column_iprops): New.

* subversion/libsvn_wc/props.c

(svn_wc__cache_iprops): Update call to svn_wc__db_cache_iprops.

(svn_wc__delete_iprops): Remove.

* subversion/libsvn_wc/wc-metadata.sql

(STMT_CREATE_NODES): Add INHERITED_PROPS blob.

(STMT_CREATE_INHERITABLE_PROPS): Remove.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_IPROPS,

STMT_INSERT_IPROP,

STMT_SELECT_INODES,

STMT_SELECT_INODES_RECURSIVE): Adjust to target nodes table rather than

the defunct INHERITED_PROPS table.

(STMT_DELETE_IPROPS_RECURSIVE,

STMT_DELETE_IPROPS): Remove.

* subversion/libsvn_wc/wc_db.c

(create_db): Don't execute defunct STMT_CREATE_INHERITABLE_PROPS.

(db_base_remove): Remove STMT_DELETE_IPROPS statement.

(remove_node_txn): Remove STMT_DELETE_IPROPS_RECURSIVE statement.

(svn_wc__db_read_cached_iprops): Update to reflect changes to

STMT_SELECT_IPROPS.

(svn_wc__db_cache_iprops): Update to reflect changes to

STMT_INSERT_IPROP.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_cache_iprops): Tweak to take an array of

svn_prop_inherited_item_t structures rather than a repos path/prop hash

pair.

(svn_wc__db_remove_cached_iprops): Remove.

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

(TESTING_DATA): Insert null values into the new inherited_props column.

* subversion/tests/libsvn_wc/entries-compat.c

(TESTING_DATA,

M_TESTING_DATA): Insert null values into the new inherited_props column.

* subversion/tests/libsvn_wc/wc-queries-test.c

(schema_statements): Remove STMT_CREATE_INHERITABLE_PROPS.

  1. … 13 more files in changeset.
On the inheritable-props branch: Sync with ^/subversion/trunk through

r1354004.

  1. … 371 more files in changeset.
On the inheritable-props branch: "Checkpoint" of WC-side inherited property

caching. This is still work-in-progress, notably:

1) The wcng schema changes for caching iprops is still in flux.

2) The new private API svn_client__update_inheritable_props is temporary.

Eventually this logic must be run atomically as a work queue item

in the update/switch editor drive.

* subversion/include/private/svn_wc_private.h

(svn_wc__get_iprops,

svn_wc__cache_iprops,

svn_wc__delete_iprops,

svn_wc__get_cached_iprop_children): New.

* subversion/libsvn_client/client.h

(svn_client__update_inheritable_props): New.

* subversion/libsvn_client/iprops.c:

(need_to_cache_iprops,

svn_client__update_inheritable_props): New.

* subversion/libsvn_client/prop_commands.c

(svn_sorts.h): Include.

(remote_propget): Allow option to get either explicit or inherited props,

or both.

(svn_client_propget5): Enable retrieval of local/cached iprops for WC

targets.

(remote_proplist): Allow option to get either explicit or inherited props,

or both.

(svn_client_proplist4): Enable retrieval of local/cached iprops for WC

targets.

* subversion/libsvn_client/switch.c

(switch_internal): Update inheritable properties cache after a switch.

* subversion/libsvn_client/update.c

(update_internal): Update inheritable properties cache after an update.

* subversion/libsvn_wc/props.c

(filter_unwanted_props,

svn_wc__get_iprops,

svn_wc__cache_iprops,

svn_wc__delete_iprops): New.

* subversion/libsvn_wc/update_editor.c

(svn_wc_is_wc_root2): Do what our doc string promises and consider a

switched file a WC root.

* subversion/libsvn_wc/wc-metadata.sql

(STMT_INHERITABLE_PROPS): New inheritable_props table.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_IPROPS,

STMT_INSERT_IPROP,

STMT_DELETE_IPROPS_RECURSIVE,

STMT_DELETE_IPROPS,

STMT_SELECT_INODES,

STMT_SELECT_INODES_RECURSIVE): New queries against the inheritable_props

table.

* subversion/libsvn_wc/wc_db.c

(create_db): Create the inheritable_props table.

(db_base_remove,

remove_node_txn): Remove the inheritable_props table.

(svn_wc__db_read_cached_iprops,

get_children_with_cached_iprops,

svn_wc__db_get_children_with_cached_iprops,

svn_wc__db_remove_cached_iprops): New.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_read_cached_iprops,

svn_wc__db_get_children_with_cached_iprops,

svn_wc__db_cache_iprops,

svn_wc__db_remove_cached_iprops): New.

* subversion/tests/cmdline/merge_tests.py

(merge_to_path_with_switched_children): Tweak merge output to reflect

fix made to svn_wc_is_wc_root2.

  1. … 12 more files in changeset.
On the inheritable-props branch: Sync with ^/subversion/trunk through

r1330574.

  1. … 132 more files in changeset.
On the inheritable-props branch: Sync with ^/subversion/trunk through

r1301213.

  1. … 60 more files in changeset.