- r992336: 2010-09-03 15:48:16 [julianfoad] Julian Foad
-
/subversion/libsvn_subr/hash.c [diff, log, file]
* subversion/libsvn_subr/hash.c
(svn_hash_keys): Simplify the code a little.
- r992276: 2010-09-03 12:21:34 [julianfoad] Julian Foad
-
/subversion/libsvn_wc/update_editor.c [diff, log, file]
/subversion/libsvn_wc/wc_db.h [diff, log, file]
/subversion/tests/cmdline/update_tests.py [diff, log, file]
Fix a bug introduced by incomplete transition to single-DB, and add a test
for it as it wasn't found by the test suite.
* subversion/libsvn_wc/update_editor.c
(tweak_node): Assert that the caller didn't request the 'parent stub'.
(tweak_entries): Don't special-case a call to tweak_node().
(do_update_cleanup): Don't special-case a call to tweak_node().
* subversion/libsvn_wc/wc_db.h
(svn_wc__db_temp_op_set_rev_and_repos_relpath): Note that the
'update_stub' parameter should be removed.
* subversion/tests/cmdline/update_tests.py
(update_with_excluded_subdir): New test.
(test_list): Add the new test.
- r992004: 2010-09-02 16:18:45 [julianfoad] Julian Foad
-
/subversion/libsvn_wc/tree_conflicts.c [diff, log, file]
* subversion/libsvn_wc/tree_conflicts.c
(svn_wc__write_tree_conflicts): Remove an obsolete comment.
- r991894: 2010-09-02 11:33:45 [julianfoad] Julian Foad
-
/subversion/include/private/svn_wc_private.h [diff, log, file]
* subversion/include/private/svn_wc_private.h
(svn_wc__node_is_status_obstructed, svn_wc__temp_mark_missing_not_present):
Delete, to fix the Windows build. (Limitation of 'extractor.py'.)
- r991887: 2010-09-02 10:59:27 [julianfoad] Julian Foad
-
/subversion/include/private/svn_wc_private.h [diff, log, file]
/subversion/libsvn_client/commit.c [diff, log, file]
/subversion/libsvn_client/commit_util.c [diff, log, file]
/subversion/libsvn_client/merge.c [diff, log, file]
To make it easier to do a multi-DB build, define SVN_WC__SINGLE_DB in the WC
private header so the client code can see it, and replace "#if 0" with
"#ifndef SVN_WC__SINGLE_DB" in the client code.
* subversion/include/private/svn_wc_private.h
Define SVN_WC__SINGLE_DB, unconditionally. Add a comment that it's also
defined in "wc.h". Replace "#if 0" with "#ifndef SVN_WC__SINGLE_DB".
* subversion/libsvn_client/merge.c
subversion/libsvn_client/commit_util.c,
subversion/libsvn_client/commit.c
Replace "#if 0" with "#ifndef SVN_WC__SINGLE_DB".
- r991856: 2010-09-02 08:43:01 [julianfoad] Julian Foad
-
/subversion/site/publish/roadmap.html [diff, log, file]
* roadmap.html: Note that single-DB upgrade is in progress.
- r991619: 2010-09-01 17:44:41 [julianfoad] Julian Foad
-
/subversion/include/private/svn_wc_private.h [diff, log, file]
/subversion/libsvn_client/commit.c [diff, log, file]
/subversion/libsvn_client/commit_util.c [diff, log, file]
/subversion/libsvn_client/merge.c [diff, log, file]
/subversion/libsvn_wc/entries.c [diff, log, file]
/subversion/libsvn_wc/node.c [diff, log, file]
Stop using svn_wc__node_is_status_obstructed(), as this kind of obstruction
can no longer occur in single-DB mode.
* subversion/libsvn_client/commit.c
(post_process_commit_item): Don't handle an obstructed admin dir.
* subversion/libsvn_client/commit_util.c
(harvest_committables): Don't handle an obstructed admin dir.
* subversion/libsvn_client/merge.c
(obstructed_or_missing, get_mergeinfo_walk_cb): Don't handle an obstructed
admin dir.
* subversion/libsvn_wc/entries.c
(svn_wc__temp_mark_missing_not_present): Remove.
* subversion/libsvn_wc/node.c
(svn_wc__node_is_status_obstructed): Remove.
* subversion/include/private/svn_wc_private.h
(svn_wc__node_is_status_obstructed): Remove.
(svn_wc__temp_mark_missing_not_present): Remove.
- r991581: 2010-09-01 16:02:52 [julianfoad] Julian Foad
-
/subversion/libsvn_wc/wc_db.c [diff, log, file]
/subversion/libsvn_wc/wc_db.h [diff, log, file]
* subversion/libsvn_wc/wc_db.h,
subversion/libsvn_wc/wc_db.c
(svn_wc__db_temp_remove_subdir_record): Remove in single-DB mode.
- r991563: 2010-09-01 15:10:17 [julianfoad] Julian Foad
-
/subversion/libsvn_wc/wc_db.c [diff, log, file]
/subversion/libsvn_wc/wc_db.h [diff, log, file]
Remove 'svn_wc__db_kind_subdir' and disable some more 'parent stub' handling
as none of this is required in single-DB mode.
* subversion/libsvn_wc/wc_db.c
(kind_map): Remove 'svn_wc__db_kind_subdir'.
(svn_wc__db_base_add_absent_node): Don't add a parent stub.
(svn_wc__db_temp_base_add_subdir): Delete, as it was unused.
(svn_wc__db_base_get_info, svn_wc__db_base_get_info_from_parent,
svn_wc__db_read_info): Don't handle 'svn_wc__db_kind_subdir'.
(svn_wc__db_scan_addition): Don't check 'svn_wc__db_kind_subdir'.
* subversion/libsvn_wc/wc_db.h
(svn_wc__db_kind_t): Remove 'svn_wc__db_kind_subdir'.
(svn_wc__db_temp_base_add_subdir): Delete, as it was unused.
Index: subversion/libsvn_wc/wc_db.c
===================================================================
--- subversion/libsvn_wc/wc_db.c (revision 991548)
+++ subversion/libsvn_wc/wc_db.c (working copy)
@@ -2058,30 +2005,34 @@ svn_wc__db_base_get_info(svn_wc__db_stat
{
svn_wc__db_kind_t node_kind = svn_sqlite__column_token(stmt, 3,
kind_map);
if (kind)
{
+#ifndef SVN_WC__SINGLE_DB
if (node_kind == svn_wc__db_kind_subdir)
*kind = svn_wc__db_kind_dir;
else
+#endif
*kind = node_kind;
}
if (status)
{
*status = svn_sqlite__column_token(stmt, 2, presence_map);
+#ifndef SVN_WC__SINGLE_DB
if (node_kind == svn_wc__db_kind_subdir
&& *status == svn_wc__db_status_normal)
{
/* We're looking at the subdir record in the *parent* directory,
which implies per-dir .svn subdirs. We should be looking
at the subdir itself; therefore, it is missing or obstructed
in some way. Inform the caller. */
*status = svn_wc__db_status_obstructed;
}
+#endif
}
if (revision)
{
*revision = svn_sqlite__column_revnum(stmt, 4);
}
if (repos_relpath)
@@ -2241,30 +2192,34 @@ svn_wc__db_base_get_info_from_parent(svn
{
svn_wc__db_kind_t node_kind = svn_sqlite__column_token(stmt, 3,
kind_map);
if (kind)
{
+#ifndef SVN_WC__SINGLE_DB
if (node_kind == svn_wc__db_kind_subdir)
*kind = svn_wc__db_kind_dir;
else
+#endif
*kind = node_kind;
}
if (status)
{
*status = svn_sqlite__column_token(stmt, 2, presence_map);
+#ifndef SVN_WC__SINGLE_DB
if (node_kind == svn_wc__db_kind_subdir
&& *status == svn_wc__db_status_normal)
{
/* We're looking at the subdir record in the *parent* directory,
which implies per-dir .svn subdirs. We should be looking
at the subdir itself; therefore, it is missing or obstructed
in some way. Inform the caller. */
*status = svn_wc__db_status_obstructed;
}
+#endif
}
if (revision)
{
*revision = svn_sqlite__column_revnum(stmt, 4);
}
if (repos_relpath)
@@ -2981,13 +2936,16 @@ temp_cross_db_copy(svn_wc__db_t *db,
svn_sqlite__stmt_t *stmt;
svn_boolean_t have_row;
svn_depth_t depth;
SVN_ERR_ASSERT(kind == svn_wc__db_kind_file
|| kind == svn_wc__db_kind_dir
- || kind == svn_wc__db_kind_subdir);
+#ifndef SVN_WC__SINGLE_DB
+ || kind == svn_wc__db_kind_subdir
+#endif
+ );
SVN_ERR(svn_wc__db_read_info(NULL /* status */,
NULL /* kind */,
NULL /* revision */,
NULL /* repos_relpath */,
NULL /* repos_root_url */,
@@ -5122,22 +5080,24 @@ svn_wc__db_read_info(svn_wc__db_status_t
### both set to 'incomplete'. */
SVN_ERR_ASSERT((*status != svn_wc__db_status_absent
&& *status != svn_wc__db_status_excluded
/* && *status != svn_wc__db_status_incomplete */)
|| !*have_work);
+#ifndef SVN_WC__SINGLE_DB
if (node_kind == svn_wc__db_kind_subdir
&& *status == svn_wc__db_status_normal)
{
/* We should have read a row from the subdir wc.db. It
must be obstructed in some way.
It is also possible that a WORKING node will override
this value with a proper status. */
*status = svn_wc__db_status_obstructed;
}
+#endif
}
if (*have_work)
{
svn_wc__db_status_t work_status;
@@ -5161,43 +5121,49 @@ svn_wc__db_read_info(svn_wc__db_status_t
|| work_status == svn_wc__db_status_base_deleted)
{
/* The caller should scan upwards to detect whether this
deletion has occurred because this node has been moved
away, or it is a regular deletion. Also note that the
deletion could be of the BASE tree, or a child of
- something that has been copied/moved here.
+ something that has been copied/moved here. */
- If we're looking at the data in the parent, then
+#ifndef SVN_WC__SINGLE_DB
+ /* If we're looking at the data in the parent, then
something has obstructed the child data. Inform
the caller. */
if (node_kind == svn_wc__db_kind_subdir)
*status = svn_wc__db_status_obstructed_delete;
else
+#endif
*status = svn_wc__db_status_deleted;
}
else /* normal */
{
/* The caller should scan upwards to detect whether this
addition has occurred because of a simple addition,
- a copy, or is the destination of a move.
+ a copy, or is the destination of a move. */
- If we're looking at the data in the parent, then
+#ifndef SVN_WC__SINGLE_DB
+ /* If we're looking at the data in the parent, then
something has obstructed the child data. Inform
the caller. */
if (node_kind == svn_wc__db_kind_subdir)
*status = svn_wc__db_status_obstructed_add;
else
+#endif
*status = svn_wc__db_status_added;
}
}
}
if (kind)
{
+#ifndef SVN_WC__SINGLE_DB
if (node_kind == svn_wc__db_kind_subdir)
*kind = svn_wc__db_kind_dir;
else
+#endif
*kind = node_kind;
}
if (revision)
{
if (*have_work)
*revision = SVN_INVALID_REVNUM;
@@ -5269,13 +5235,16 @@ svn_wc__db_read_info(svn_wc__db_status_t
else
*last_mod_time = svn_sqlite__column_int64(stmt_base, 12);
}
if (depth)
{
if (node_kind != svn_wc__db_kind_dir
- && node_kind != svn_wc__db_kind_subdir)
+#ifndef SVN_WC__SINGLE_DB
+ && node_kind != svn_wc__db_kind_subdir
+#endif
+ )
{
*depth = svn_depth_unknown;
}
else
{
const char *depth_str;
@@ -6616,23 +6585,25 @@ svn_wc__db_scan_addition(svn_wc__db_stat
return svn_error_createf(SVN_ERR_WC_PATH_UNEXPECTED_STATUS,
svn_sqlite__reset(stmt),
_("Expected node '%s' to be added."),
svn_dirent_local_style(local_abspath,
scratch_pool));
+#ifndef SVN_WC__SINGLE_DB
/* ### in per-dir operation, it is possible that we just fetched
### the parent stub. examine the KIND field.
###
### scan_addition is NOT allowed for an obstructed_add status
### from read_info. there may be key information in the
### subdir record (eg. copyfrom_*). */
{
svn_wc__db_kind_t kind = svn_sqlite__column_token(stmt, 1,
kind_map);
SVN_ERR_ASSERT(kind != svn_wc__db_kind_subdir);
}
+#endif
/* Provide the default status; we'll override as appropriate. */
if (status)
*status = svn_wc__db_status_added;
}
- r991543: 2010-09-01 14:00:33 [julianfoad] Julian Foad
-
/subversion/libsvn_wc/wc_db.c [diff, log, file]
/subversion/libsvn_wc/wc_db.h [diff, log, file]
/subversion/libsvn_wc/workqueue.c [diff, log, file]
Disable some 'parent stub' handling as it's not required in single-DB mode.
* subversion/libsvn_wc/wc_db.h
(svn_wc__db_temp_set_parent_stub_to_normal): Remove this function.
* subversion/libsvn_wc/wc_db.c
(navigate_to_parent): Don't allow verifying a parent stub.
(svn_wc__db_op_copy_dir, svn_wc__db_op_add_directory): Don't add a parent
stub.
(svn_wc__db_temp_set_parent_stub_to_normal): Remove this function.
* subversion/libsvn_wc/workqueue.c
(log_do_committed): Don't set the parent stub to normal.
- r991509: 2010-09-01 12:11:44 [julianfoad] Julian Foad
-
/tools/dev/wc-ng/bump-to-19.py [diff, log, file]
* tools/dev/wc-ng/bump-to-19.py
Remove a TODO about skipping other-WC dirs.
Add a TODO about deleting to-be-deleted directories.
- r991474: 2010-09-01 08:44:08 [julianfoad] Julian Foad
-
/tools/dev/wc-ng/bump-to-19.py [diff, log, file]
* tools/dev/wc-ng/bump-to-19.py
(migrate_wc_subdirs): If errors occur while deleting old .svn dirs,
report the errors and continue, instead of quitting.
- r991470: 2010-09-01 08:38:38 [julianfoad] Julian Foad
-
/subversion/tests/cmdline/authz_tests.py [diff, log, file]
/subversion/tests/cmdline/basic_tests.py [diff, log, file]
/subversion/tests/cmdline/copy_tests.py [diff, log, file]
/subversion/tests/cmdline/schedule_tests.py [diff, log, file]
Remove Wimp status from the tests that need single-DB.
* subversion/tests/cmdline/copy_tests.py
* subversion/tests/cmdline/basic_tests.py
* subversion/tests/cmdline/schedule_tests.py
* subversion/tests/cmdline/authz_tests.py
(test_list): Remove Wimp status from the tests that need single-DB.
- r991236: 2010-08-31 16:39:49 [julianfoad] Julian Foad
-
/subversion/libsvn_wc/wc.h [diff, log, file]
Enable single-DB mode.
* subversion/libsvn_wc/wc.h
(SVN_WC__SINGLE_DB, SINGLE_DB): Define if SVN_WC__VERSION >= 19. Move to
after the definition of SVN_WC__VERSION.
(SVN_WC__VERSION): Bump to 19 and document the change.
- r991231: 2010-08-31 16:23:47 [julianfoad] Julian Foad
-
/tools/dev/wc-ng/bump-to-19.py [diff, log, file]
In bump-to-19.py, delete the old subdirectory '.svn' dirs. Also shorten the
progress messages.
* tools/dev/wc-ng/bump-to-19.py
(dotsvn_path, tmp_path): New functions.
(migrate_wc_subdirs): Keep track of which dirs we've migrated, and delete
their .svn's afterwards. Only print one line of progress info per dir.
- r991223: 2010-08-31 15:47:19 [julianfoad] Julian Foad
-
/tools/dev/wc-ng/bump-to-19.py [diff, log, file]
In bump-to-19.py, don't fail on missing pristine dir, as that's a legitimate
state if there are no versioned files that have bases in this WC dir. Also
make sure to delete the pristine dir; previously it was only deleted if any
files had been moved from it.
* tools/dev/wc-ng/bump-to-19.py
(move_and_shard_pristine_files): If there is no 'pristine' dir, just
return successfully.
(shard_pristine_files): Remove, as we can use move_and_shard_pristine_files()
instead.
(migrate_wc_subdirs): Remove the old pristine dir if it still exists.
(__main__): Use move_and_shard_pristine_files() instead of
shard_pristine_files(), for simplicity.
- r991206: 2010-08-31 14:27:26 [julianfoad] Julian Foad
-
/subversion/libsvn_wc/upgrade.c [diff, log, file]
* subversion/libsvn_wc/upgrade.c
(svn_wc__upgrade_sdb): Issue a friendly error if the WC format is 18.
- r991182: 2010-08-31 13:11:40 [julianfoad] Julian Foad
-
/subversion/libsvn_fs_fs/fs_fs.c [diff, log, file]
For issue #3696 "FSFS error - Can't open file 'db/transactions/props'"
<http://subversion.tigris.org/issues/show_bug.cgi?id=3696>, use a normal
error report instead of an assertion. We should trace and fix the cause,
but that's proving difficult and as long as the error is known to occur in
real life we want to report it. A follow-up to r980046.
* subversion/libsvn_fs_fs/fs_fs.c
(get_txn_proplist): Replace an assertion with a regular error report.
- r990121: 2010-08-27 12:11:37 [julianfoad] Julian Foad
-
/subversion/bindings/swig/svn_diff.i [diff, log, file]
/subversion/include/svn_diff.h [diff, log, file]
/subversion/libsvn_client/patch.c [diff, log, file]
/subversion/libsvn_diff/parse-diff.c [diff, log, file]
/subversion/tests/libsvn_diff/parse-diff-test.c [diff, log, file]
Rename 'svn_hunk_t' to 'svn_diff_hunk_t', in order to keep a common
'svn_diff_' prefix on diff library symbols.
* subversion/include/svn_diff.h,
subversion/libsvn_diff/parse-diff.c
(svn_hunk_t): Rename to 'svn_diff_hunk_t'. Update all references.
* subversion/libsvn_client/patch.c,
subversion/tests/libsvn_diff/parse-diff-test.c,
subversion/bindings/swig/svn_diff.i
Update all references.
- r990113: 2010-08-27 11:55:40 [julianfoad] Julian Foad
-
/subversion/libsvn_client/repos_diff.c [diff, log, file]
Minor tweaks to simplify and strengthen some diff code.
* subversion/libsvn_client/repos_diff.c
(make_file_baton): Require the correct pointer type for the edit baton
argument, because we can, just like in make_dir_baton().
(diff_deleted_dir): Declare and assert that the supplied revision number
is valid, because we don't need to handle invalid numbers.
- r990105: 2010-08-27 11:25:58 [julianfoad] Julian Foad
-
/subversion/libsvn_client/repos_diff_summarize.c [diff, log, file]
* subversion/libsvn_client/repos_diff_summarize.c
(ensure_summarize): Fix a typo.
- r990103: 2010-08-27 11:22:58 [julianfoad] Julian Foad
-
/subversion/include/svn_diff.h [diff, log, file]
/subversion/include/svn_props.h [diff, log, file]
/subversion/include/svn_ra_svn.h [diff, log, file]
/subversion/include/svn_sorts.h [diff, log, file]
/subversion/include/svn_wc.h [diff, log, file]
Fix some Doxygen mark-up.
* subversion/include/svn_diff.h
(svn_hunk_t): Use '@verbatim' for diff hunk examples, as Doxygen was
interpreting some mark-up and doing some formatting inside '<pre>'.
(svn_diff_file_options_t): Use double quotes rather than single quotes to
avoid Doxygen converting '@@' to '@'.
(svn_diff_hunk_reset_*, svn_diff_hunk_get_*): Enable Doxygen.
* subversion/include/svn_props.h
(SVN_PROP_BOOLEAN_TRUE): Enable Doxygen.
(SVN_PROP_EXTERNALS, SVN_PROP_WC_PREFIX): Use '<pre>' instead of
'@verbatim' temporarily to work around a Doxygen bug in which it failed
to recognize the #define and all subsequent ones, issuing messages like
'warning: documentation for unknown define XXX found.'.
* subversion/include/svn_ra_svn.h
(svn_ra_svn_write_tuple): Use '@code' for a C code example, to give nicer
display than '@verbatim'.
* subversion/include/svn_sorts.h
(svn_sort_compare_items_as_paths): Use '@code' for a C code example and
remove embedded mark-up that was being displayed literally.
* subversion/include/svn_wc.h
(svn_wc_add4): Use double quotes rather than single quotes to avoid
Doxygen misinterpreting '@rev' as an invalid command.
(svn_wc_notify_t): Enable Doxygen on recently added members.
(svn_wc_conflict_action_t, svn_wc_conflict_choice_t): Enable Doxygen on the members.
- r989610: 2010-08-26 11:45:16 [julianfoad] Julian Foad
-
/subversion/tests/cmdline/merge_tree_conflict_tests.py [diff, log, file]
Correct an XFail test so that it passes.
* subversion/tests/cmdline/merge_tree_conflict_tests.py
(tree_conflicts_on_merge_no_local_ci_5_1): Correct the expectations of
which nodes have properties; these were simply wrong.
(test_list): Remove 'XFail' from that test.
- r989605: 2010-08-26 11:17:36 [julianfoad] Julian Foad
-
/subversion/tests/cmdline/merge_tree_conflict_tests.py [diff, log, file]
/subversion/tests/cmdline/svntest/actions.py [diff, log, file]
Refactor the definitions of some test expectations. No change to the
expectations.
* subversion/tests/cmdline/merge_tree_conflict_tests.py
(disk_after_leaf_del_no_ci): Import from svntest.actions.
(disk_after_tree_del_no_ci): Import from svntest.actions instead of
defining it here.
(tree_conflicts_on_merge_local_ci_5_2): Use disk_after_leaf_del instead of
literal data.
(tree_conflicts_on_merge_no_local_ci_5_2): Use disk_after_leaf_del_no_ci
instead of literal data.
* subversion/tests/cmdline/svntest/actions.py
(disk_after_leaf_del_no_ci, disk_after_tree_del_no_ci): New functions.
- r989273: 2010-08-25 18:06:54 [julianfoad] Julian Foad
-
/subversion/tests/cmdline/merge_tree_conflict_tests.py [diff, log, file]
Correct the expectations in three tests in merge_tree_conflict_tests.py so
they pass in single-DB mode as well as multi-DB mode.
* subversion/tests/cmdline/merge_tree_conflict_tests.py
(disk_after_tree_del_no_ci): New function.
(tree_conflicts_on_merge_no_local_ci_4_1,
tree_conflicts_on_merge_no_local_ci_4_2,
tree_conflicts_on_merge_no_local_ci_6): Use disk_after_tree_del_no_ci.