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

r1389356.

Resolve some minor conflicts with the incoming bump to WC format 30 (see

r1387742). We had already made that bump on this branch to support a schema

change required for iprops (see r1376154 and r1376924). With this sync, the

latter change is now part of the bump to format 31.

  1. … 57 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: Bump WC format and handle upgrades.

Manual and auto WC upgrades will now bump the WC format to 30, add the

inherited_props column to the NODES table, and flag the WC roots that

require iprop caches. Upgrade is still a disconnected operation however,

so the caches are not populated until the next update.

* subversion/libsvn_wc/upgrade.c

(bump_to_30): Renamed the previous function here to bump_to_31 (it isn't

currently used). The "new" bump_to_30 adds the inherited_props column

to the NODES table and then sets the inherited_props of each WC root,

excluding roots mapped to the repos root, to and empty array.

(bump_to_31): The old bump_to_30.

(svn_wc__upgrade_sdb): Handle the bump to 30.

* subversion/libsvn_wc/wc-metadata.sql

(CREATE TABLE NODES): Move the inherited_props column to the rightmost

column so the ordering is the same for a newly created format 30 WC

as it is for one upgraded to 30.

(STMT_UPGRADE_TO_30): New, replaces the old STMT_UPGRADE_TO_30 which is

renamed to...

(STMT_UPGRADE_TO_31): ...this.

(STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE): Renamed to...

(STMT_UPGRADE_31_SELECT_CONFLICT_SEPARATE): ...this.

(STMT_UPGRADE_30_SET_CONFLICT): Renamed to...

(STMT_UPGRADE_TO_31): ...this.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_WCROOT_NODES): New.

* subversion/libsvn_wc/wc.h

(SVN_WC__VERSION): Bump from 29 to 30.

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

(TESTING_DATA): Account for new position of inherited_props column in

the NODES table.

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

(TESTING_DATA,

M_TESTING_DATA): Account for new position of inherited_props column in

the NODES table.

  1. … 5 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

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

r1301213.

  1. … 60 more files in changeset.