Checkout Tools
  • last updated 6 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 879326 is being indexed.

JavaHL: Treat an empty test.rooturl system property as if it were null.

This fixes the test suite.

[ in subversion/bindings/javahl/ ]

* tests/org/tigris/subversion/javahl/

(init): Treat an empty string test.rooturl the same as null.

Add a library-internal node walker, and use it to replace a call to


* subversion/libsvn_wc/wc.h

(svn_wc__internal_walk_children): New.

* subversion/libsvn_wc/update_editor.c

(modcheck_found_entry): Rename from this...

(modcheck_found_node): this, and remove any dependence on


(tree_has_local_mods): Remove the access baton and call to

svn_wc_walk_entries3(), and use svn_wc__internal_walk_children() instead.

(check_tree_conflict): Update caller to above.

* subversion/libsvn_wc/node.c

(svn_wc__internal_walk_children): New.

(svn_wc__node_walk_children): Make this a wrapper around the internal version.

Update the loggy tree conflict add API to support the new conflict

description type.

* subversion/libsvn_wc/update_editor.c

(check_tree_conflict, do_entry_deletion, add_directory, open_directory,

add_file, open_file):

Switch to the new tree conflict description type.

* subversion/libsvn_wc/tree_conflicts.h

(svn_wc__loggy_add_tree_conflict): Take an svn_wc_conflict_description2_t


* subversion/libsvn_wc/log.c

(svn_wc__loggy_add_tree_conflict): Take an svn_wc_conflict_description2_t

parameter, and don't convert from the old type.

Add a new API to fetch change rev/date/author information, and use said API

within libsvn_client.

* subversion/include/private/svn_wc_private.h

(svn_wc__node_get_changed_info): New.

* subversion/libsvn_wc/node.c

(svn_wc__node_get_changed_info): New.

* subversion/libsvn_client/export.c

(copy_one_versioned_file): Use the new API to fetch the changed information,

instead of reading it from the entry.

* subversion/libsvn_client/info.c

(build_info_from_entry): Same.

* subversion/libsvn_client/cat.c

(cat_local_file): Same.

* subversion/libsvn_wc/update_editor.c

(add_directory): Const-ify an entry.

* subversion/libsvn_client/cat.c

(cat_local_file): Use the new version of svn_wc_get_pristine_contents2().

Add an API to fetch a node's depth.

* subversion/include/private/svn_wc_private.h

(svn_wc__node_get_kind): Remove the non-sensical @since tag.

(svn_wc__node_get_depth): New.

* subversion/libsvn_wc/node.c

(svn_wc__node_get_depth): New.

Store the absolute path of a file in the file_baton of the update

editor and use the pre-calculated values instead of recalculating

it several times.

* subversion/libsvn_wc/update_editor.c

(file_baton): Add local_abspath.

(make_file_baton): Fill local_abspath.

(prep_directory, delete_entry, add_directory, open_directory,

close_directory, add_file, open_file, apply_textdelta, merge_file,

close_file): Use pre-calculated local_abspath.

* tools/dev/svnraisetreeconflict:

Set svn:ignore to ignore the generated .libs directory.

Convert a call to svn_wc_walk_entries3() to svn_wc__node_walk_children().

* subversion/libsvn_client/merge.c

(get_subtree_mergienfo_walk_baton): Store the absolute target path.

(get_subtree_mergeinfo_walk_cb): Update interface, and remove the dependence

on svn_wc_entry_t.

(svn_client_merge_reintegrate): Call svn_wc__node_walk_children(), update

the callback type, and the baton to use an absolute path.

* subversion/libsvn_wc/wc-metadata.sql

(BASE_NODE): Answer one of my own questions with the information

received from gstein on irc.

* subversion/libsvn_wc/update_editor.c

(add_directory): Remove access batons used for determining obstructions.

Convert svn_wc__get_tree_conflict() and svn_wc__add_tree_conflict() to use

svn_wc_conflict_description2_t, and update various callers.

* subversion/include/private/svn_wc_private.h

(svn_wc__get_tree_conflict, svn_wc__add_tree_conflict): Update the

struct type.

(svn_wc__cd2_to_cd, svn_wc__cd_to_cd2): Move to here.

* subversion/libsvn_wc/tree_conflicts.c

(svn_wc__add_tree_conflict): Use the new type, and its absolute path (rather

than requiring a separate absolute path). Also don't bother translating

from the old type.

(svn_wc__get_tree_conflict): Don't translate types, just set the conflict.

* subversion/libsvn_wc/tree_conflicts.h

(svn_wc__cd2_to_cd, svn_wc__cd_to_cd2): Remove.

* subversion/libsvn_client/info.c

(info_found_entry_callback, info_error_handler): Convert the retrieved

conflict descriptor to the appropriate returned type.

* subversion/libsvn_client/merge.c

(make_tree_conflict, tree_conflict, tree_conflict_on_add): Use the new type,

and get rid of an access baton in the process.

(merge_file_changed, merge_file_added, merge_file_deleted, merge_dir_added,

merge_dir_deleted, merge_dir_opened): Update callers.

* subversion/libsvn_client/commit_util.c

(svn_client__harvest_committables): Use the updated type to fetch a tree


Make the skipped_trees and deleted_trees used while updating use

absolute paths.

The skipped trees api was already using absolute paths internally.

* subversion/libsvn_wc/update_editor.c

(edit_baton): Update documentation.

(remember_skipped_tree, remember_deleted_tree):

Update prototype and documentation. Verify paths.

(in_deleted_tree, in_skipped_tree): Verify paths and skip walking

up the path if the hashtables are empty.

(complete_directory, check_tree_conflict, do_entry_deletion,

add_directory, open_directory, close_directory, add_file,

open_file, close_file): Update callers.

* subversion/libsvn_wc/lock.c

(svn_wc__adm_missing): Following up on 39162, add some extra documentation.

Suggested by: gstein

* subversion/tests/cmdline/

(lock_twice_in_one_wc): Make stderr regex a bit less strict in an

attempt to fix the test error on the neon buildbot.

Remove a couple of now-unused access batons.

* subversion/libsvn_client/merge.c

(get_mergeinfo_walk_baton, get_subtree_mergeinfo_walk_baton):

Remove the base_access member.

(get_mergeinfo_paths, svn_client_merge_reintegrate): Don't set said member.

* subversion/libsvn_wc/copy.c

(copy_file_administratively): Don't shadow a previous variable declaration.

Also, avoid a couple of potential error leaks.

Update svn_wc__read_tree_conflicts() and svn_wc__write_tree_conflicts() to use

hashs of svn_wc_conflict_description2_t structs instead of

svn_wc_conflict_description_t structs.

* subversion/tests/libsvn_wc/tree-conflict-data-test.c

(test_read_tree_conflict, test_read_2_tree_conflicts,

test_read_invalid_tree_conflicts, test_write_tree_conflict):

Update tests.


Update test, and also remove the invalid path case. The constructors

now test this via a no-return assert.

* subversion/include/private/svn_wc_private.h

(svn_wc__read_tree_conflicts): Update docs.

* subversion/libsvn_wc/adm_ops.c

(revert_internal): Use a conflict_description2_t to interact with the

new APIs. Also, perform some juggling to sanitize a path before passing

it along.

* subversion/libsvn_wc/status.c

(get_dir_status): Update a comment.

* subversion/libsvn_wc/tree_conflicts.c

(read_one_tree_conflict): Create the rev'd struct, rather than the

deprecated one.

(svn_wc__read_tree_conflicts, svn_wc__write_tree_conflicts):

Iterate over the rev'd version of the struct.

* subversion/libsvn_wc/tree_conflicts.h

(svn_wc__write_tree_conflicts): Update docs.

* subversion/libsvn_wc/entries.c

(visit_tc_too_found_entry): Just use the absolute path provided by

the conflict description, rather than generating one locally.

* subversion/libsvn_wc/wc_db.c

(remove_tc_txn, svn_wc__read_tree_conflicts): Don't bother converting the

read conflict, since it is now the right type.

* subversion/libsvn_wc/log.c

(log_runner): Update a doc.

(log_do_add_tree_conflict): Use the updated struct when creating and

storing tree conflicts.

(run_log): When adding the tree conflict(s), use the provided absolute

path, instead of calculating a new one.

(svn_wc__loggy_add_tree_conflict): Convert the incoming conflict to the

correct type, and use it's absolute path as a hash key.

* subversion/libsvn_wc/upgrade.c

(migrate_single_tree_conflict_data): Use the new tree conflict type, and

properly construct the conflict_relpath for migrating the data.

A couple of improvements to the tree conflict descriptor handling.

* subversion/libsvn_wc/util.c



svn_wc_conflict_description_create_tree2): Assert we are passed an absolute


(svn_wc_conflict_version_dup): Allow dup'ing a NULL value.

Add an iterpool when migrating tree conflict data from f12 to f13.

* subversion/libsvn_wc/upgrade.c

(migrate_single_tree_conflict_data): Add the iteration pool.

* subversion/tests/cmdline/

(lock_twice_in_one_wc): Use A/B instead of just B. (For some reason this B is

not available in the dav tests).

Update the pristine and revert file apis to provide a working copy

context/db and to work with absolute paths. Also change the internal apis

to allow returning an error.

This only broke one testcase: The test for the exact filenames passed

to diff tools. This test is changed to expect the full path.

* subversion/include/svn_wc.h

(svn_wc_get_pristine_contents): Fix documentation; accidentally already

deprectated before this patch.

* subversion/libsvn_wc/adm_crawler.c

(restore_file, svn_wc__internal_transmit_text_deltas): Update callers/

* subversion/libsvn_wc/adm_files.c

(svn_wc__text_base_path, svn_wc__text_revert_path,


Take a db and local_abspath.

* subversion/libsvn_wc/adm_files.h

(remove_revert_files, svn_wc_delete4, svn_wc_add4,

revert_admin_things): Update callers.

(svn_wc_get_pristine_copy_path): Create wc context and use it for retrieving

the path.

* subversion/libsvn_wc/adm_ops.c

(svn_wc_get_pristine_contents): Renamed to ...

(svn_wc_get_pristine_contents2): ... this and take a context and abspath.

(svn_wc__get_pristine_contents): New function.

(svn_wc_remove_from_revision_control): Update caller.

* subversion/libsvn_wc/copy.c

(copy_file_administratively): Update caller.

* subversion/libsvn_wc/deprecated.c

(svn_wc_get_pristine_contents): New function.

* subversion/libsvn_wc/diff.c

(file_diff, report_wc_file_as_added, delete_entry, apply_textdelta,

close_file): Update callers.

* subversion/libsvn_wc/log.c

(install_committed_file, log_do_committed): Update callers.

* subversion/libsvn_wc/questions.c

(svn_wc__text_modified_internal_p): Update caller.

* subversion/libsvn_wc/update_editor.c

(add_file_with_history, choose_base_paths, apply_textdelta,

svn_wc_add_repos_file4): Update callers.

* subversion/tests/cmdline/

(diff_external_diffcmd): Expect an absolute path to the pristine file.

* subversion/libsvn_wc/props.c

(svn_wc_prop_list2): Remove unused variable.

Add a helper function to duplicate svn_wc_conflict_description2_t structures.

* subversion/include/svn_wc.h

(svn_wc__conflict_description2_dup): New.

* subversion/libsvn_wc/util.c

(svn_wc__conflict_description2_dup): New.

Add a couple of temporary conversion functions to make an

svn_wc_conflict_description_t into an svn_wc_conflict_description2_t.

Use these functions to begin a transition to the new datatype, first

by updating the interfaces to svn_wc__db_op_read_tree_conflict(), and


* subversion/libsvn_wc/adm_ops.c

(revert_internal, resolve_found_entry_callback): Update to use the new struct.

* subversion/libsvn_wc/status.c

(assemble_status, get_dir_status): Same.

* subversion/libsvn_wc/update_editor.c

(already_in_a_tree_conflict): Same.

* subversion/libsvn_wc/questions.c

(svn_wc__internal_conflicted_p): Same.

* subversion/libsvn_wc/entries.c

(visit_tc_too_error_handler, svn_wc__walk_entries_and_tc): Same.

* subversion/libsvn_wc/tree_conflicts.c

(svn_wc__add_tree_conflict, svn_wc__get_tree_conflict): Same.

(svn_wc__cd2_to_cd, svn_wc__cd_to_cd2): New.

* subversion/libsvn_wc/tree_conflicts.h

(svn_wc__loggy_add_tree_conflict, svn_wc__write_tree_conflicts):

Remove senseless Since tags.

(svn_wc__cd2_to_cd, svn_wc__cd_to_cd2): New.

* subversion/libsvn_wc/wc_db.c

(remove_tc_baton): Update conflict description type.

(remove_tc_txn): Convert tree conflicts after reading them.

(svn_wc__db_op_set_tree_conflict): Update param type.

(svn_wc__db_op_get_tree_conflict): Rename to...

(svn_wc__db_op_read_tree_conflict): ...this, and convert the incoming

tree conflict to something we can use.

* subversion/libsvn_wc/log.c

(run_log): Convert the passed in tree conflict.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_op_get_tree_conflict): Rename to...

(svn_wc__db_op_read_tree_conflict): ...this.

(svn_wc__db_op_set_tree_conflict): Add a comment.

Update a docstring.

* subversion/include/svn_wc.h

(svn_wc_conflict_description2_t): Don't put 'Since 1.6' for any of the

members of this struct, since it is new in 1.7.

When running a log which writes tree conflicts, just queue up the pending

conflicts and use the wc_db API, rather than messing with the tree conflict

data directly and using the entry_modify() API.

* subversion/libsvn_wc/log.c

(log_runner): Remove the tree_conflicts_added member.

(log_do_add_tree_conflict): Don't set the tree_conflict_added flag.

(run_log): If tree conflicts are queued for processing, use the wc_db API

to set them, rather than entry_modify().

* subversion/libsvn_wc/status.c

(get_dir_status): Remove obsolete comment and don't ignore explicit

specified targets.

(svn_wc_walk_status): When walking files, use the directory and specify

the file as selected target.

Attempt to answer a few of Bert's questions about the wc-ng metadata schema.

* subversion/libsvn_wc/wc-metadata.sql:

Add some comments about conflicts and locks.