Modified: subversion/trunk/subversion/libsvn_wc/wc_db.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.h?rev=1094135&r1=1094134&r2=1094135&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/wc_db.h (original) +++ subversion/trunk/subversion/libsvn_wc/wc_db.h Sun Apr 17 12:34:29 2011 @@ -1377,7 +1377,7 @@ svn_wc__db_op_set_tree_conflict(svn_wc__ The OUT parameters, and their "not available" values are: STATUS n/a (always available) - KIND n/a (always available) + KIND svn_wc__db_kind_unknown (For ACTUAL only nodes) REVISION SVN_INVALID_REVNUM REPOS_RELPATH NULL REPOS_ROOT_URL NULL @@ -1385,29 +1385,37 @@ svn_wc__db_op_set_tree_conflict(svn_wc__ CHANGED_REV SVN_INVALID_REVNUM CHANGED_DATE 0 CHANGED_AUTHOR NULL - LAST_MOD_TIME 0 DEPTH svn_depth_unknown CHECKSUM NULL - TRANSLATED_SIZE SVN_INVALID_FILESIZE TARGET NULL - CHANGELIST NULL + ORIGINAL_REPOS_RELPATH NULL ORIGINAL_ROOT_URL NULL ORIGINAL_UUID NULL ORIGINAL_REVISION SVN_INVALID_REVNUM - PROPS_MOD n/a (always available) - HAVE_BASE n/a (always available) - HAVE_WORK n/a (always available) - CONFLICTED FALSE + LOCK NULL + RECORDED_SIZE SVN_INVALID_FILESIZE + RECORDED_MOD_TIME 0 + + CHANGELIST NULL + CONFLICTED FALSE + + OP_ROOT FALSE + HAVE_PROPS FALSE + PROPS_MOD FALSE + + HAVE_BASE FALSE + HAVE_MORE_WORK FALSE + HAVE_WORK FALSE + When STATUS is requested, then it will be one of these values: svn_wc__db_status_normal A plain BASE node, with no local changes. svn_wc__db_status_added - svn_wc__db_status_obstructed_add A node has been added/copied/moved to here. See HAVE_BASE to see if this change overwrites a BASE node. Use scan_addition() to resolve whether this has been added, copied, or moved, and the details of the @@ -1415,15 +1423,11 @@ svn_wc__db_op_set_tree_conflict(svn_wc__ the details requires scanning one or more ancestor nodes). svn_wc__db_status_deleted - svn_wc__db_status_obstructed_delete This node has been deleted or moved away. It may be a delete/move of a BASE node, or a child node of a subtree that was copied/moved to an ancestor location. Call scan_deletion() to determine the full details of the operations upon this node. - svn_wc__db_status_obstructed - The versioned subdirectory is missing or obstructed by a file. - svn_wc__db_status_absent The node is versioned/known by the server, but the server has decided not to provide further information about the node. This @@ -1455,11 +1459,30 @@ svn_wc__db_op_set_tree_conflict(svn_wc__ If CHECKSUM is requested, and the node is NOT a file, then it will be set to NULL. + If TARGET is requested, and the node is NOT a symlink, then it will + be set to NULL. + If TRANSLATED_SIZE is requested, and the node is NOT a file, then it will be set to SVN_INVALID_FILESIZE. - If TARGET is requested, and the node is NOT a symlink, then it will - be set to NULL. + If HAVE_WORK is TRUE, the returned information is from the highest WORKING + layer. In that case HAVE_MORE_WORK and HAVE_BASE provide information about + what other layers exist for this node. + + If HAVE_WORK is FALSE and HAVE_BASE is TRUE then the information is from + the BASE tree. + + If HAVE_WORK and HAVE_BASE are both FALSE and when retrieving CONFLICTED, + then the node doesn't exist at all. + + If OP_ROOT is requested and the node has a WORKING layer, OP_ROOT will be + set to true if this node is the op_root for this layer. + + If HAD_PROPS is requested and the node has pristine props, the value will + be set to TRUE. + + If PROP_MODS is requested and the node has property modification the value + will be set to TRUE. ### add information about the need to scan upwards to get a complete ### picture of the state of this node. @@ -1511,12 +1534,9 @@ svn_wc__db_read_info(svn_wc__db_status_t svn_revnum_t *changed_rev, apr_time_t *changed_date, const char **changed_author, - apr_time_t *last_mod_time, - svn_depth_t *depth, /* ### dirs only */ - const svn_checksum_t **checksum, - svn_filesize_t *translated_size, - const char **target, - const char **changelist, + svn_depth_t *depth, /* dirs only */ + const svn_checksum_t **checksum, /* files only */ + const char **target, /* symlinks only */ /* ### the following fields if copied/moved (history) */ const char **original_repos_relpath, @@ -1524,15 +1544,27 @@ svn_wc__db_read_info(svn_wc__db_status_t const char **original_uuid, svn_revnum_t *original_revision, + /* For BASE nodes */ + svn_wc__db_lock_t **lock, + + /* Recorded for files present in the working copy */ + svn_filesize_t *recorded_size, + apr_time_t *recorded_mod_time, + + /* From ACTUAL */ + const char **changelist, + svn_boolean_t *conflicted, + /* ### the followed are derived fields */ + svn_boolean_t *op_root, + + svn_boolean_t *had_props, svn_boolean_t *props_mod, + svn_boolean_t *have_base, + svn_boolean_t *have_more_work, svn_boolean_t *have_work, - svn_boolean_t *conflicted, - - svn_wc__db_lock_t **lock, - svn_wc__db_t *db, const char *local_abspath, apr_pool_t *result_pool,
Modified: subversion/trunk/subversion/libsvn_wc/workqueue.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/workqueue.c?rev=1094135&r1=1094134&r2=1094135&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/workqueue.c (original) +++ subversion/trunk/subversion/libsvn_wc/workqueue.c Sun Apr 17 12:34:29 2011 @@ -158,8 +158,9 @@ remove_base_node(svn_wc__db_t *db, SVN_ERR(svn_wc__db_read_info(&wrk_status, &wrk_kind, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, &have_base, - &have_work, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, + &have_base, NULL, &have_work, db, local_abspath, scratch_pool, scratch_pool)); SVN_ERR_ASSERT(have_base); /* Verified in caller and _base_get_children() */ @@ -663,9 +664,9 @@ log_do_committed(svn_wc__db_t *db, &status, &kind, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - &prop_mods, NULL, NULL, - NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, &prop_mods, + NULL, NULL, NULL, db, local_abspath, scratch_pool, scratch_pool)); @@ -1107,13 +1108,13 @@ run_file_install(svn_wc__db_t *db, { apr_time_t changed_date; - SVN_ERR(svn_wc__db_read_info( - NULL, NULL, NULL, NULL, NULL, NULL, - NULL, &changed_date, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, - db, local_abspath, - scratch_pool, scratch_pool)); + SVN_ERR(svn_wc__db_read_info(NULL, NULL, NULL, NULL, NULL, NULL, + NULL, &changed_date, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + db, local_abspath, + scratch_pool, scratch_pool)); if (changed_date) SVN_ERR(svn_io_set_file_affected_time(changed_date, Modified: subversion/trunk/subversion/tests/libsvn_wc/db-test.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_wc/db-test.c?rev=1094135&r1=1094134&r2=1094135&view=diff ============================================================================== --- subversion/trunk/subversion/tests/libsvn_wc/db-test.c (original) +++ subversion/trunk/subversion/tests/libsvn_wc/db-test.c Sun Apr 17 12:34:29 2011 @@ -829,8 +829,11 @@ test_working_info(apr_pool_t *pool) const char *original_root_url; const char *original_uuid; svn_revnum_t original_revnum; + svn_boolean_t op_root; + svn_boolean_t had_props; svn_boolean_t props_mod; svn_boolean_t have_base; + svn_boolean_t have_more_work; svn_boolean_t have_work; svn_boolean_t conflicted; svn_wc__db_lock_t *lock; @@ -843,12 +846,12 @@ test_working_info(apr_pool_t *pool) SVN_ERR(svn_wc__db_read_info( &status, &kind, &revision, &repos_relpath, &repos_root_url, &repos_uuid, - &changed_rev, &changed_date, &changed_author, &last_mod_time, - &depth, &checksum, &translated_size, &target, - &changelist, &original_repos_relpath, &original_root_url, - &original_uuid, &original_revnum, - &props_mod, &have_base, &have_work, - &conflicted, &lock, + &changed_rev, &changed_date, &changed_author, + &depth, &checksum, &target, &original_repos_relpath, + &original_root_url, &original_uuid, &original_revnum, + &lock, &translated_size, &last_mod_time, &changelist, + &conflicted, &op_root, &had_props, &props_mod, + &have_base, &have_more_work, &have_work, db, svn_dirent_join(local_abspath, "I", pool), pool, pool)); SVN_TEST_ASSERT(status == svn_wc__db_status_added); @@ -1242,6 +1245,7 @@ test_global_relocate(apr_pool_t *pool) NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, db, local_abspath, pool, pool)); @@ -1257,6 +1261,7 @@ test_global_relocate(apr_pool_t *pool) NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, db, local_abspath, pool, pool)); SVN_TEST_STRING_ASSERT(repos_relpath, ""); @@ -1271,6 +1276,7 @@ test_global_relocate(apr_pool_t *pool) NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, db, svn_dirent_join(local_abspath, "F", pool), pool, pool)); @@ -1285,6 +1291,7 @@ test_global_relocate(apr_pool_t *pool) NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, db, svn_dirent_join(local_abspath, "G", pool), pool, pool));
