You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2011/04/17 16:20:04 UTC
svn commit: r1094146 - in /subversion/trunk/subversion: libsvn_wc/
tests/libsvn_wc/
Author: rhuijben
Date: Sun Apr 17 14:20:03 2011
New Revision: 1094146
URL: http://svn.apache.org/viewvc?rev=1094146&view=rev
Log:
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.
Modified:
subversion/trunk/subversion/libsvn_wc/adm_crawler.c
subversion/trunk/subversion/libsvn_wc/adm_ops.c
subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c
subversion/trunk/subversion/libsvn_wc/crop.c
subversion/trunk/subversion/libsvn_wc/diff.c
subversion/trunk/subversion/libsvn_wc/entries.c
subversion/trunk/subversion/libsvn_wc/node.c
subversion/trunk/subversion/libsvn_wc/translate.c
subversion/trunk/subversion/libsvn_wc/update_editor.c
subversion/trunk/subversion/libsvn_wc/wc_db.c
subversion/trunk/subversion/libsvn_wc/wc_db.h
subversion/trunk/subversion/libsvn_wc/workqueue.c
subversion/trunk/subversion/tests/libsvn_wc/db-test.c
Modified: subversion/trunk/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_crawler.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_crawler.c Sun Apr 17 14:20:03 2011
@@ -680,7 +680,7 @@ find_base_rev(svn_revnum_t *base_rev,
return svn_error_return(
svn_wc__db_base_get_info(NULL, NULL, base_rev, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL, NULL,
db, local_abspath, pool, pool));
if (status == svn_wc__db_status_added)
@@ -753,9 +753,9 @@ svn_wc_crawl_revisions5(svn_wc_context_t
compared to. */
err = svn_wc__db_base_get_info(&status, &target_kind, &target_rev,
&repos_relpath, &repos_root_url,
- NULL, NULL, NULL, NULL, NULL,
- &target_depth, NULL, NULL, NULL,
- &target_lock, NULL,
+ NULL, NULL, NULL, NULL, &target_depth,
+ NULL, NULL, &target_lock, NULL,
+ NULL, NULL, NULL, NULL,
db, local_abspath, scratch_pool,
scratch_pool);
@@ -925,7 +925,7 @@ svn_wc_crawl_revisions5(svn_wc_context_t
err = svn_wc__db_base_get_info(&parent_status, NULL, NULL,
&parent_repos_relpath, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
db, parent_abspath,
scratch_pool, scratch_pool);
Modified: subversion/trunk/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_ops.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Sun Apr 17 14:20:03 2011
@@ -1822,8 +1822,8 @@ svn_wc__internal_remove_from_revision_co
/* Find the checksum(s) of the node's one or two pristine texts. Note
that read_info() may give us the one from BASE_NODE again. */
err = svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL,
- &base_sha1_checksum,
+ NULL, NULL, NULL, NULL,
+ &base_sha1_checksum, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool);
Modified: subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c Sun Apr 17 14:20:03 2011
@@ -141,8 +141,8 @@ ambient_read_info(svn_boolean_t *hidden,
if (read_base)
err = svn_wc__db_base_get_info(status, kind, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, depth, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, depth, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool);
else
Modified: subversion/trunk/subversion/libsvn_wc/crop.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/crop.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/crop.c (original)
+++ subversion/trunk/subversion/libsvn_wc/crop.c Sun Apr 17 14:20:03 2011
@@ -277,7 +277,7 @@ svn_wc_exclude(svn_wc_context_t *wc_ctx,
SVN_ERR(svn_wc__db_base_get_info(NULL, &kind, &revision, &repos_relpath,
&repos_root, &repos_uuid, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL, NULL,
wc_ctx->db, local_abspath,
scratch_pool, scratch_pool));
Modified: subversion/trunk/subversion/libsvn_wc/diff.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/diff.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/diff.c (original)
+++ subversion/trunk/subversion/libsvn_wc/diff.c Sun Apr 17 14:20:03 2011
@@ -166,8 +166,8 @@ get_nearest_pristine_text_as_file(const
svn_error_t *err;
err = svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, &checksum,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, &checksum,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool);
if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
@@ -591,6 +591,7 @@ file_diff(struct dir_baton *db,
SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, &revert_base_revnum,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL,
eb->db, local_abspath, pool, pool));
replaced = ((status == svn_wc__db_status_added)
Modified: subversion/trunk/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Sun Apr 17 14:20:03 2011
@@ -221,10 +221,12 @@ get_base_info_for_deleted(svn_wc_entry_t
&entry->cmt_rev,
&entry->cmt_date,
&entry->cmt_author,
- &entry->text_time,
&entry->depth,
checksum,
+ NULL,
+ NULL /* lock */,
&entry->working_size,
+ &entry->text_time,
NULL,
NULL,
NULL,
@@ -584,7 +586,7 @@ read_one_entry(const svn_wc_entry_t **ne
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- &update_root,
+ NULL, &update_root, NULL,
db, entry_abspath,
scratch_pool,
scratch_pool));
Modified: subversion/trunk/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/node.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/node.c (original)
+++ subversion/trunk/subversion/libsvn_wc/node.c Sun Apr 17 14:20:03 2011
@@ -897,11 +897,9 @@ svn_wc__node_get_base_rev(svn_revnum_t *
svn_boolean_t have_base;
svn_error_t *err;
- err = svn_wc__db_base_get_info(NULL, NULL, base_revision,
- NULL, NULL, NULL,
- NULL, NULL, NULL,
- NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ err = svn_wc__db_base_get_info(NULL, NULL, base_revision, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL,
wc_ctx->db, local_abspath,
scratch_pool, scratch_pool);
@@ -973,9 +971,9 @@ svn_wc__node_get_working_rev_info(svn_re
NULL, NULL, changed_rev,
changed_date, changed_author,
NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, wc_ctx->db,
- base_del_abspath, result_pool,
- scratch_pool));
+ NULL, NULL, NULL, NULL,
+ wc_ctx->db, base_del_abspath,
+ result_pool, scratch_pool));
}
}
else if (have_base)
@@ -985,7 +983,8 @@ svn_wc__node_get_working_rev_info(svn_re
SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, &base_rev, NULL, NULL,
NULL, changed_rev, changed_date,
changed_author, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, wc_ctx->db, local_abspath,
+ NULL, NULL, NULL, NULL, NULL,
+ wc_ctx->db, local_abspath,
result_pool, scratch_pool));
if (revision && !SVN_IS_VALID_REVNUM(*revision)
@@ -1097,8 +1096,8 @@ svn_wc__node_get_lock_info(const char **
svn_error_t *err;
err = svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- &lock, NULL,
+ NULL, NULL, NULL, NULL, NULL, &lock, NULL,
+ NULL, NULL, NULL, NULL,
wc_ctx->db, local_abspath,
result_pool, scratch_pool);
@@ -1599,7 +1598,7 @@ svn_wc__node_get_origin(svn_boolean_t *i
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, revision, repos_relpath,
repos_root_url, repos_uuid, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
wc_ctx->db, local_abspath,
result_pool, scratch_pool));
}
@@ -1734,7 +1733,8 @@ svn_wc__node_get_commit_status(svn_node_
{
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, revision, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, update_root,
+ NULL, NULL, NULL, NULL, update_root,
+ NULL,
wc_ctx->db, local_abspath,
scratch_pool, scratch_pool));
}
Modified: subversion/trunk/subversion/libsvn_wc/translate.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/translate.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/translate.c (original)
+++ subversion/trunk/subversion/libsvn_wc/translate.c Sun Apr 17 14:20:03 2011
@@ -411,8 +411,8 @@ svn_wc__maybe_set_read_only(svn_boolean_
return SVN_NO_ERROR; /* Doesn't need lock handling */
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- &lock, NULL,
+ NULL, NULL, NULL, NULL, NULL, &lock,
+ NULL, NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/update_editor.c Sun Apr 17 14:20:03 2011
@@ -669,7 +669,7 @@ complete_directory(struct edit_baton *eb
have to worry about removing it. */
err = svn_wc__db_base_get_info(&status, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
eb->db, eb->target_abspath,
scratch_pool, scratch_pool);
if (err)
@@ -721,8 +721,8 @@ complete_directory(struct edit_baton *eb
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, &depth, NULL, NULL, NULL, NULL,
- NULL,
+ &depth, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
eb->db, local_abspath,
scratch_pool, scratch_pool));
@@ -1146,8 +1146,8 @@ open_root(void *edit_baton,
/* Read the depth from the entry. */
SVN_ERR(svn_wc__db_base_get_info(&status, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, &depth, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, &depth, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
eb->db, db->local_abspath, pool, pool));
db->ambient_depth = depth;
db->was_incomplete = (status == svn_wc__db_status_incomplete);
@@ -1362,7 +1362,8 @@ create_tree_conflict(svn_wc_conflict_des
&left_repos_relpath,
&repos_root_url,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL,
eb->db,
local_abspath,
result_pool,
@@ -1515,7 +1516,7 @@ check_tree_conflict(svn_wc_conflict_desc
SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
eb->db, local_abspath,
pool,
pool));
@@ -2294,9 +2295,9 @@ open_directory(const char *path,
base_status = status;
else
SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, &db->old_revision,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
&db->ambient_depth, NULL, NULL, NULL,
- NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
eb->db, db->local_abspath, pool, pool));
db->was_incomplete = (base_status == svn_wc__db_status_incomplete);
@@ -2617,8 +2618,8 @@ close_directory(void *dir_baton,
&changed_rev,
&changed_date,
&changed_author,
- NULL, &depth, NULL, NULL, NULL, NULL,
- NULL,
+ &depth, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
eb->db, db->local_abspath,
pool, pool));
@@ -3112,8 +3113,8 @@ open_file(const char *path,
if (have_work)
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, &fb->old_revision,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, &fb->original_checksum, NULL, NULL,
- NULL, NULL,
+ &fb->original_checksum, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
eb->db, fb->local_abspath,
fb->pool, scratch_pool));
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Sun Apr 17 14:20:03 2011
@@ -1837,13 +1837,15 @@ base_get_info(svn_wc__db_status_t *statu
svn_revnum_t *changed_rev,
apr_time_t *changed_date,
const char **changed_author,
- apr_time_t *last_mod_time,
svn_depth_t *depth,
const svn_checksum_t **checksum,
- svn_filesize_t *translated_size,
const char **target,
svn_wc__db_lock_t **lock,
+ svn_filesize_t *recorded_size,
+ apr_time_t *recorded_mod_time,
+ svn_boolean_t *had_props,
svn_boolean_t *update_root,
+ svn_boolean_t *needs_full_update,
svn_wc__db_wcroot_t *wcroot,
const char *local_relpath,
apr_pool_t *result_pool,
@@ -1893,9 +1895,9 @@ base_get_info(svn_wc__db_status_t *statu
/* Result may be NULL. */
*changed_author = svn_sqlite__column_text(stmt, 9, result_pool);
}
- if (last_mod_time)
+ if (recorded_mod_time)
{
- *last_mod_time = svn_sqlite__column_int64(stmt, 12);
+ *recorded_mod_time = svn_sqlite__column_int64(stmt, 12);
}
if (depth)
{
@@ -1931,9 +1933,9 @@ base_get_info(svn_wc__db_status_t *statu
scratch_pool));
}
}
- if (translated_size)
+ if (recorded_size)
{
- *translated_size = get_translated_size(stmt, 6);
+ *recorded_size = get_translated_size(stmt, 6);
}
if (target)
{
@@ -1942,10 +1944,21 @@ base_get_info(svn_wc__db_status_t *statu
else
*target = svn_sqlite__column_text(stmt, 11, result_pool);
}
+ if (had_props)
+ {
+ *had_props = !svn_sqlite__column_is_null(stmt, 13);
+ }
if (update_root)
{
*update_root = svn_sqlite__column_boolean(stmt, 14);
}
+ if (needs_full_update)
+ {
+ /* Before we add a new column it is equivalent to the wc-ng
+ incomplete presence */
+ *status = (svn_sqlite__column_token(stmt, 2, presence_map)
+ == svn_wc__db_status_incomplete);
+ }
}
else
{
@@ -1970,13 +1983,15 @@ svn_wc__db_base_get_info(svn_wc__db_stat
svn_revnum_t *changed_rev,
apr_time_t *changed_date,
const char **changed_author,
- apr_time_t *last_mod_time,
svn_depth_t *depth,
const svn_checksum_t **checksum,
- svn_filesize_t *translated_size,
const char **target,
svn_wc__db_lock_t **lock,
+ svn_filesize_t *recorded_size,
+ apr_time_t *recorded_mod_time,
+ svn_boolean_t *had_props,
svn_boolean_t *update_root,
+ svn_boolean_t *needs_full_update,
svn_wc__db_t *db,
const char *local_abspath,
apr_pool_t *result_pool,
@@ -1993,9 +2008,10 @@ svn_wc__db_base_get_info(svn_wc__db_stat
VERIFY_USABLE_WCROOT(wcroot);
SVN_ERR(base_get_info(status, kind, revision, repos_relpath, &repos_id,
- changed_rev, changed_date, changed_author,
- last_mod_time, depth, checksum, translated_size,
- target, lock, update_root,
+ changed_rev, changed_date, changed_author, depth,
+ checksum, target, lock, recorded_size,
+ recorded_mod_time, had_props,
+ update_root, needs_full_update,
wcroot, local_relpath, result_pool, scratch_pool));
SVN_ERR_ASSERT(repos_id != INVALID_REPOS_ID);
SVN_ERR(fetch_repos_info(repos_root_url, repos_uuid,
@@ -2434,7 +2450,7 @@ get_info_for_copy(apr_int64_t *copyfrom_
SVN_ERR(base_get_info(NULL, NULL, copyfrom_rev, copyfrom_relpath,
copyfrom_id,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
wcroot, base_del_relpath,
result_pool, scratch_pool));
}
@@ -7176,7 +7192,7 @@ bump_node_revision(svn_wc__db_wcroot_t *
SVN_ERR(base_get_info(&status, &db_kind, &revision, &repos_relpath,
&repos_id, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, &update_root,
+ NULL, NULL, NULL, &update_root, NULL,
wcroot, local_relpath,
scratch_pool, scratch_pool));
@@ -7295,7 +7311,7 @@ bump_revisions_post_commit(void *baton,
apr_int64_t new_repos_id = -1;
err = base_get_info(&status, &kind, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
wcroot, local_relpath, scratch_pool, scratch_pool);
if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
{
@@ -9491,7 +9507,7 @@ end_directory_update(void *baton,
svn_sqlite__stmt_t *stmt;
svn_wc__db_status_t base_status;
- SVN_ERR(base_get_info(&base_status, NULL, NULL, NULL, NULL, NULL,
+ SVN_ERR(base_get_info(&base_status, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
wcroot, local_relpath, scratch_pool, scratch_pool));
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.h?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.h Sun Apr 17 14:20:03 2011
@@ -674,21 +674,27 @@ svn_wc__db_base_remove(svn_wc__db_t *db,
will be returned.
The OUT parameters, and their "not available" values are:
- STATUS n/a (always available)
- KIND n/a (always available)
- REVISION SVN_INVALID_REVNUM
- REPOS_RELPATH NULL (caller should scan up)
- REPOS_ROOT_URL NULL (caller should scan up)
- REPOS_UUID NULL (caller should scan up)
- 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
- LOCK NULL
+ STATUS n/a (always available)
+ KIND n/a (always available)
+ REVISION SVN_INVALID_REVNUM
+ REPOS_RELPATH NULL (caller should scan up)
+ REPOS_ROOT_URL NULL (caller should scan up)
+ REPOS_UUID NULL (caller should scan up)
+ CHANGED_REV SVN_INVALID_REVNUM
+ CHANGED_DATE 0
+ CHANGED_AUTHOR NULL
+ DEPTH svn_depth_unknown
+ CHECKSUM NULL
+ TARGET NULL
+ LOCK NULL
+
+ RECORDED_SIZE SVN_INVALID_FILESIZE
+ RECORDED_MOD_TIME 0
+
+ HAD_PROPS FALSE
+
+ UPDATE_ROOT FALSE
+ NEEDS_FULL_UPDATE FALSE
If the STATUS is normal, and the REPOS_* values are NULL, then the
caller should use svn_wc__db_scan_base_repos() to scan up the BASE
@@ -701,7 +707,7 @@ svn_wc__db_base_remove(svn_wc__db_t *db,
If CHECKSUM is requested, and the node is NOT a file, then it will
be set to NULL.
- If TRANSLATED_SIZE is requested, and the node is NOT a file, then
+ If RECORDED_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
@@ -710,6 +716,9 @@ svn_wc__db_base_remove(svn_wc__db_t *db,
If UPDATE_ROOT is requested, set it to TRUE if the node should only
be updated when it is the root of an update (e.g. file externals).
+ If NEEDS_FULL_UPDATE is requested, set it to TRUE if the node needs to know
+ the complete set of children and properties on the next update. (EditorV1)
+
All returned data will be allocated in RESULT_POOL. All temporary
allocations will be made in SCRATCH_POOL.
*/
@@ -723,13 +732,15 @@ svn_wc__db_base_get_info(svn_wc__db_stat
svn_revnum_t *changed_rev,
apr_time_t *changed_date,
const char **changed_author,
- apr_time_t *last_mod_time,
svn_depth_t *depth,
const svn_checksum_t **checksum,
- svn_filesize_t *translated_size,
const char **target,
svn_wc__db_lock_t **lock,
+ svn_filesize_t *recorded_size,
+ apr_time_t *recorded_mod_time,
+ svn_boolean_t *had_props,
svn_boolean_t *update_root,
+ svn_boolean_t *needs_full_update,
svn_wc__db_t *db,
const char *local_abspath,
apr_pool_t *result_pool,
@@ -1403,7 +1414,7 @@ svn_wc__db_op_set_tree_conflict(svn_wc__
CONFLICTED FALSE
OP_ROOT FALSE
- HAVE_PROPS FALSE
+ HAD_PROPS FALSE
PROPS_MOD FALSE
HAVE_BASE FALSE
Modified: subversion/trunk/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/workqueue.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/trunk/subversion/libsvn_wc/workqueue.c Sun Apr 17 14:20:03 2011
@@ -175,7 +175,7 @@ remove_base_node(svn_wc__db_t *db,
else
SVN_ERR(svn_wc__db_base_get_info(&base_status, &base_kind, NULL, NULL,
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));
@@ -265,7 +265,7 @@ run_base_remove(svn_wc__db_t *db,
SVN_ERR(svn_wc__db_base_get_info(NULL, &kind, &revision, &repos_relpath,
&repos_root_url, &repos_uuid, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL,
db, local_abspath,
scratch_pool, scratch_pool));
}
@@ -358,6 +358,7 @@ run_deletion_postcommit(svn_wc__db_t *db
SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, &parent_revision, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL,
db, svn_dirent_dirname(local_abspath,
scratch_pool),
scratch_pool, scratch_pool));
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=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_wc/db-test.c Sun Apr 17 14:20:03 2011
@@ -412,6 +412,9 @@ test_getting_info(apr_pool_t *pool)
const svn_checksum_t *checksum;
svn_filesize_t translated_size;
const char *target;
+ svn_boolean_t had_props;
+ svn_boolean_t update_root;
+ svn_boolean_t needs_full_update;
svn_wc__db_lock_t *lock;
svn_wc__db_t *db;
svn_error_t *err;
@@ -423,8 +426,9 @@ test_getting_info(apr_pool_t *pool)
SVN_ERR(svn_wc__db_base_get_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, &lock, NULL,
+ &changed_rev, &changed_date, &changed_author,&depth, &checksum,
+ &target, &lock, &translated_size, &last_mod_time, &had_props,
+ &update_root, &needs_full_update,
db, local_abspath,
pool, pool));
SVN_TEST_ASSERT(kind == svn_wc__db_kind_dir);
@@ -448,7 +452,8 @@ test_getting_info(apr_pool_t *pool)
NULL, &kind, NULL,
&repos_relpath, &repos_root_url, &repos_uuid,
NULL, NULL, NULL, NULL,
- NULL, &checksum, &translated_size, NULL, NULL, NULL,
+ &checksum, NULL, NULL, &translated_size,
+ NULL, NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "A", pool),
pool, pool));
SVN_TEST_ASSERT(kind == svn_wc__db_kind_file);
@@ -462,8 +467,9 @@ test_getting_info(apr_pool_t *pool)
SVN_ERR(svn_wc__db_base_get_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, &lock, NULL,
+ &changed_rev, &changed_date, &changed_author,
+ &depth, &checksum, &target, &lock, &translated_size,
+ &last_mod_time, NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "B", pool),
pool, pool));
SVN_TEST_ASSERT(kind == svn_wc__db_kind_symlink);
@@ -487,7 +493,8 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "C", pool),
pool, pool));
SVN_TEST_ASSERT(kind == svn_wc__db_kind_unknown);
@@ -499,7 +506,8 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "D", pool),
pool, pool));
SVN_TEST_ASSERT(status == svn_wc__db_status_not_present);
@@ -510,7 +518,8 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "E", pool),
pool, pool));
SVN_TEST_ASSERT(status == svn_wc__db_status_incomplete);
@@ -520,7 +529,9 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL, &checksum, &translated_size, NULL, NULL, NULL,
+ NULL, &checksum, NULL,
+ NULL, &translated_size, NULL,
+ NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "F", pool),
pool, pool));
SVN_TEST_STRING_ASSERT(SHA1_1,
@@ -532,7 +543,9 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL, NULL,
&repos_relpath, &repos_root_url, &repos_uuid,
&changed_rev, &changed_date, &changed_author,
- 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));
SVN_TEST_STRING_ASSERT(repos_relpath, "G-alt");
@@ -547,7 +560,9 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL, &checksum, &translated_size, &target, NULL, NULL,
+ NULL, &checksum, &target,
+ NULL, &translated_size, NULL,
+ NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "H", pool),
pool, pool));
SVN_TEST_ASSERT(checksum == NULL);
@@ -560,7 +575,8 @@ test_getting_info(apr_pool_t *pool)
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
db, svn_dirent_join(local_abspath, "missing-file", pool),
pool, pool);
SVN_TEST_ASSERT(err != NULL && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND);
@@ -589,7 +605,8 @@ validate_node(svn_wc__db_t *db,
NULL, NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
- NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL,
+ NULL, NULL, NULL,
db, path,
scratch_pool, scratch_pool));
SVN_TEST_ASSERT(kind == expected_kind);