cl-conflicts.c

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

Changeset 1687529 is being indexed.

Add an svn_client_conflict API to obtain the legacy property reject path.

* subversion/include/svn_client.h

(svn_client_conflict_prop_get_reject_abspath): Declare.

* subversion/libsvn_client/resolved.c

(svn_client_conflict_prop_get_reject_abspath): Implement.

* subversion/svn/cl-conflicts.c

(svn_cl__append_conflict_info_xml): Restore XML output to working condition.

  1. … 2 more files in changeset.
Introduce svn_client_conflict_t and start making use of it in the resolver.

Right now, this new opaque type simply wraps the old struct. This is required

to keep the current resolver implementation working for now.

The plan is to develop new resolver functionality using the new type and

eventually phase out the old struct entirely.

* subversion/include/svn_client.h

(svn_client_conflict_t, svn_client_conflict_get,

svn_client_conflict_from_wc_description2_t): Declare.

(svn_client_conflict_get_kind,

svn_client_conflict_get_local_abspath,

svn_client_conflict_get_operation,

svn_client_conflict_get_incoming_change,

svn_client_conflict_get_local_change,

svn_client_conflict_get_repos_info,

svn_client_conflict_get_incoming_old_repos_location,

svn_client_conflict_get_incoming_new_repos_location,

svn_client_conflict_tree_get_victim_node_kind,

svn_client_conflict_prop_get_propname,

svn_client_conflict_text_get_mime_type,

svn_client_conflict_text_get_contents): Expect svn_client_conflict_t.

* subversion/libsvn_client/resolved.c

(svn_client_conflict_t, svn_client_conflict_get,

svn_client_conflict_from_wc_description2_t): Implement.

(svn_client_conflict_get_kind,

svn_client_conflict_get_local_abspath,

svn_client_conflict_get_operation,

svn_client_conflict_get_incoming_change,

svn_client_conflict_get_local_change,

svn_client_conflict_get_repos_info,

svn_client_conflict_get_incoming_old_repos_location,

svn_client_conflict_get_incoming_new_repos_location,

svn_client_conflict_tree_get_victim_node_kind,

svn_client_conflict_prop_get_propname,

svn_client_conflict_text_get_mime_type,

svn_client_conflict_text_get_contents): Use svn_client_conflict_t.

* subversion/svn/cl-conflicts.h

(svn_cl__get_human_readable_prop_conflict_description,

svn_cl__get_human_readable_tree_conflict_description,

svn_cl__append_conflict_info_xml): Expect svn_client_conflict_t.

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_prop_conflict_description,

svn_cl__get_human_readable_tree_conflict_description,

append_tree_conflict_info_xml,

svn_cl__append_conflict_info_xml): Expect svn_client_conflict_t.

* subversion/svn/conflict-callbacks.c

(show_diff, show_conflicts, handle_text_conflict, handle_prop_conflict,

handle_tree_conflict, conflict_func_interactive): Use svn_client_conflict_t.

(svn_cl__conflict_func_interactive): Convert svn_wc_conflict_description2_t

to svn_client_conflict_t and use that.

* subversion/svn/info-cmd.c

(print_info_xml, print_info): Convert svn_wc_conflict_description2_t to

svn_client_conflict_t and use that.

* subversion/svn/status.c

(print_status): Convert svn_wc_conflict_description2_t to

svn_client_conflict_t and use that.

  1. … 6 more files in changeset.
Replace macros svn_client_conflict_get_src_left_version() and

svn_client_conflict_get_src_right_version() with a new set of

functions returning the same information. Replace some use of

the svn_wc_conflict_version_t structure with a few individual

parameters and variables.

* subversion/include/svn_client.h

(svn_client_conflict_get_repos_info,

svn_client_conflict_get_incoming_old_repos_location,

svn_client_conflict_get_incoming_new_repos_location): Declare.

(svn_client_conflict_get_src_left_version,

svn_client_conflict_get_src_right_version): Delete.

* subversion/libsvn_client/resolved.c

(svn_client_conflict_get_repos_info,

svn_client_conflict_get_incoming_old_repos_location,

svn_client_conflict_get_incoming_new_repos_location): Implement.

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_tree_conflict_description,

add_conflict_version_xml, append_tree_conflict_info_xml): Update callers.

* subversion/svn/cl.h

(svn_cl__node_description): Expect several input parameters instead of

a single svn_wc_conflict_version_t struct. Otherwise, callers would now

have to create a temporary struct containing the same information.

* subversion/svn/conflict-callbacks.c

(handle_tree_conflict): Update caller.

* subversion/svn/info-cmd.c

(print_info): Update caller.

* subversion/svn/util.c

(svn_cl__node_description): Use several input parameters instead of struct.

  1. … 6 more files in changeset.
Follow-up to r1687290: Fix even more test fallout.

* subversion/svn/cl-conflicts.c

(svn_cl__append_conflict_info_xml): Don't call

svn_client_conflict_text_get_contents() with non-text conflicts.

Replace conflicted file content accessor macros with a single function.

The accessors svn_client_conflict_get_base_abspath(),

svn_client_conflict_get_my_abspath(), and

svn_client_conflict_get_their_abspath() are replaced by a new function

called svn_client_conflict_text_get_contents(). For now, this function

returns the same outputs (absolute paths) but this may change in future.

* subversion/include/svn_client.h

(svn_client_conflict_text_get_contents): Declare.

(svn_client_conflict_get_base_abspath, svn_client_conflict_get_my_abspath,

svn_client_conflict_get_their_abspath): Remove.

* subversion/libsvn_client/resolved.c

(svn_client_conflict_text_get_contents): Implement. This implementation

is not complete yet since the WC base content it could return is not

always available in the svn_wc_conflict_description2_t struct.

* subversion/svn/cl-conflicts.c

(svn_cl__append_conflict_info_xml): Update caller.

* subversion/svn/conflict-callbacks.c

(show_diff, show_conflicts, handle_text_conflict,

conflict_func_interactive): Update callers.

* subversion/svn/info-cmd.c

(print_info): Update caller.

  1. … 4 more files in changeset.
Replace the temporary svn_client_conflict_get_node_kind() macro with a new

function called svn_client_conflict_tree_get_victim_node_kind().

This functionality moves into the svn_client_conflict_tree_* namespace because

in our current resolver implementation the node kind is only ever requested in

the context of tree conflicts.

* subversion/include/svn_client.h

(svn_client_conflict_tree_get_victim_node_kind): Declare.

(svn_client_conflict_get_node_kind): Remove.

* subversion/libsvn_client/resolved.c

(svn_client_conflict_tree_get_victim_node_kind): Implement.

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_tree_conflict_description,

append_tree_conflict_info_xml): Update callers.

* subversion/svn/conflict-callbacks.c

(handle_tree_conflict): Update caller.

* subversion/svn/info-cmd.c

(print_info): Update caller.

  1. … 4 more files in changeset.
Start introducing some actual svn_client_conflict API functions.

The API functions introduced with this commit are very trivial ones.

* subversion/include/svn_client.h

(svn_client_conflict_get_local_abspath,

svn_client_conflict_get_operation,

svn_client_conflict_get_incoming_change,

svn_client_conflict_get_local_change): Declare. These function replace the

macros called svn_client_conflict_get_local_abspath,

svn_client_conflict_get_operation, svn_client_conflict_get_action, and

svn_client_conflict_get_reason.

* subversion/libsvn_client/resolved.c

(svn_client_conflict_get_local_abspath,

svn_client_conflict_get_operation,

svn_client_conflict_get_incoming_change,

svn_client_conflict_get_local_change): Implement.

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_prop_conflict_description,

(svn_cl__get_human_readable_tree_conflict_description,

append_tree_conflict_info_xml): Switch to new functions replacing macros.

* subversion/svn/conflict-callbacks.c

(handle_tree_conflict, conflict_func_interactive): Likewise.

  1. … 3 more files in changeset.
Start using transitional accessor API for svn_wc_conflict_description2_t.

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_prop_conflict_description,

svn_cl__get_human_readable_tree_conflict_description,

append_tree_conflict_info_xml,

svn_cl__append_conflict_info_xml): Use svn_client_conflict_* to access

fields of svn_wc_conflict_description2_t.

In preparation for my following patch that improves obstruction detection

on update-move extend the 'svn info' output with some information about

text and property conflicts that is currently only shown when there is

(also) a tree conflict.

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_action_description): New function.

* subversion/svn/cl-conflicts.h

(svn_cl__get_human_readable_action_description): New function.

* subversion/svn/info-cmd.c

(print_info): Make sure the left and right version are logically

grouped by adding an header if there is a conflict but no tree

conflict.

* subversion/tests/cmdline/prop_tests.py

(dir_prop_conflict_details): Update expected result.

  1. … 3 more files in changeset.
Slightly improve some tree conflict reason (local change) and

action (incoming change) descriptions.

* subversion/svn/cl-conflicts.c

(local_reason_str): For merge, a missing node might actually be missing,

not only deleted or moved away.

(incoming_action_str): Indicate replacing node kind when describing

incoming replacements.

* subversion/tests/cmdline/tree_conflict_tests.py

(actual_only_node_behaviour): Adjust expected output.

  1. … 1 more file in changeset.
Fix misreporting of tree conflict victim's node kind, in particular

in cases where the victim is an obstruction.

* subversion/libsvn_wc/conflicts.c

(read_tree_conflict_desc): The local node kind cannot be derived from the

incoming src-left or src-right node kind as was done here. For example,

local unversioned files were labeled as 'local dir' if they obstructed

an incoming directory addition. If the conflict reason is an obstruction

we must check the on-disk state of the node and use it to describe the

victim's node kind. Missing nodes obviously have node type 'none' but

they were described as 'file'.

* subversion/svn/cl-conflicts.c

(local_reason_str, incoming_action_str): Describe symlinks as files.

Handle 'none' and 'unknown' type nodes.

* subversion/tests/cmdline/switch_tests.py

(forced_switch_failures): This test had node kinds swapped around. Fix it.

* subversion/tests/cmdline/tree_conflict_tests.py

(actual_only_node_behaviour): Output for 'none' type nodes has changed.

Adjust expected output accordingly.

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

(test_read_write_tree_conflicts): Create on-disk files and directories

in the test working copy since they are now required for proper node

kind detection. Previously, this test was using wc-db data only.

  1. … 4 more files in changeset.
Undo the introduction of svn_wc_conflict_description3_t.

Instead of revving svn_wc_conflict_description2_t ("desc2"), we can extend the

struct with new fields or a pointer to private data to be accessed via functions,

and keep the existing fields as they are now.

This approach avoids an unwieldy cascade of changes to callbacks and other API

elements which already use desc2. This commit does not add new fields or private

data for desc2 -- that is future work.

Discussed with philip, julianfoad, rhuijben, and breser.

* subversion/include/private/svn_wc_private.h

(svn_wc__get_tree_conflict, svn_wc__add_tree_conflict): Switch back to desc2.

(svn_wc__cd3_to_cd2, svn_wc__cd3_array_to_cd2_array ): Remove declaration.

* subversion/include/svn_wc.h

(svn_wc_conflict_description_private_t): New typedef.

(svn_wc_conflict_description3_t): Remove.

(svn_wc_conflict_description2_t): Enhance documentation based on improvements

made for desc3. Extend this structure with a pointer to private data.

(svn_wc_conflict_description_create_text3,

svn_wc_conflict_description_create_prop3,

svn_wc_conflict_description_create_tree3,

svn_wc__conflict_description3_dup,

svn_wc_conflict_resolver_func3_t): Un-declare.

(svn_wc_conflict_description_create_text2,

svn_wc_conflict_description_create_prop2,

svn_wc_conflict_description_create_tree2,

svn_wc_conflict_resolver_func2_t): Un-deprecate.

(svn_wc_info_t): Remove 'conflicts2' field.

* subversion/libsvn_client/merge.c

(merge_dir_baton_t): Document that 'new_tree_conflicts' array now has

desc2 elements again.

(record_tree_conflict, merge_file_opened, merge_dir_opened): Use desc2.

* subversion/libsvn_wc/conflicts.c

(local_change_map): Rename back to reason_map for consistency.

(incoming_change_map): Rename back to action_map for consistency.

(svn_wc__conflict_skel_add_tree_conflict,

svn_wc__conflict_read_prop_conflict,

svn_wc__conflict_read_tree_conflict): Rename local_change and

incoming_change parameters back to reason and action for consistency.

(generate_propconflict, resolve_text_conflict, read_text_conflict_desc,

svn_wc__conflict_invoke_resolver, read_prop_conflict_descs,

svn_wc__read_conflicts, conflict_status_walker): Use desc2.

(eval_text_conflict_func_result): Rename 'merged_abspath' parameter back to

'merged_file' for consistency. Use desc2.

* subversion/libsvn_wc/deprecated.c

(svn_wc__status2_from_3): Use desc2.

(svn_wc_conflict_description_create_text2,

svn_wc_conflict_description_create_prop2,

svn_wc_conflict_description_create_tree2): Moved back to libsvn_wc/util.c.

* subversion/libsvn_wc/entries.c

(read_one_entry, write_entry): Use desc2.

* subversion/libsvn_wc/info.c

(svn_wc_info_dup, build_info_for_node, svn_wc__get_info): Use desc2 and drop

support for removed 'conflicts2' member of svn_wc_info_t.

* subversion/libsvn_wc/tree_conflicts.c

(svn_wc__deserialize_conflict, svn_wc__serialize_conflict,

svn_wc__add_tree_conflict, svn_wc__get_tree_conflict): Use desc2.

* subversion/libsvn_wc/tree_conflicts.h

(svn_wc__serialize_conflict,

svn_wc__deserialize_conflict): Tweak declarations for desc2.

* subversion/libsvn_wc/upgrade.c

(read_tree_conflicts, migrate_single_tree_conflict_data,

svn_wc__upgrade_conflict_skel_from_raw): Use desc2.

* subversion/libsvn_wc/util.c

(svn_wc_conflict_description_create_text3,

svn_wc_conflict_description_create_prop3,

svn_wc_conflict_description_create_tree3,

svn_wc__conflict_description3_dup,

svn_wc__cd3_array_to_cd2_array, svn_wc__cd3_to_cd2): Remove.

(svn_wc_conflict_description_create_text2,

svn_wc_conflict_description_create_prop2,

svn_wc_conflict_description_create_tree2): Move back here

from libsvn_wc/deprecated.c

* subversion/libsvn_wc/wc.h

(svn_wc__read_conflicts): Change mention in docstring back to desc2.

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_prop_conflict_description,

svn_cl__get_human_readable_tree_conflict_description,

append_tree_conflict_info_xml, svn_cl__append_conflict_info_xml): Use desc2.

* subversion/svn/cl-conflicts.h

(svn_cl__get_human_readable_prop_conflict_description,

svn_cl__get_human_readable_tree_conflict_description,

svn_cl__append_conflict_info_xml): Change declarations for desc2.

* subversion/svn/cl.h

(svn_cl__conflict_func_interactive): Change declaration back to desc2.

* subversion/svn/conflict-callbacks.c

(show_diff, show_conflicts, merge_prop_conflict, show_prop_conflict,

edit_prop_conflict, handle_text_conflict, handle_prop_conflict,

handle_tree_conflict, handle_obstructed_add,

conflict_func_interactive): Use desc2. In handle_prop_conflict, restore

workaround for wrongly filled in fields in desc2 for now.

* subversion/svn/info-cmd.c

(print_info_xml, print_info): Use desc2.

* subversion/svn/status.c

(print_status): Use desc2.

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

(compare_version, compare_file_content, compare_prop_conflict,

tree_conflict_create, test_deserialize_tree_conflict,

test_read_write_tree_conflicts, test_serialize_tree_conflict): Use desc2.

* tools/dev/svnraisetreeconflict/svnraisetreeconflict.c

(raise_tree_conflict): Use desc2.

  1. … 19 more files in changeset.
Use svn_wc_conflict_description3_t throughout the 'svn' command line client.

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_prop_conflict_description,

svn_cl__get_human_readable_tree_conflict_description,

append_tree_conflict_info_xml, svn_cl__append_conflict_info_xml): Use

svn_wc_conflict_description3_t instead of svn_wc_conflict_description2_t.

* subversion/svn/cl-conflicts.h

(svn_cl__get_human_readable_prop_conflict_description,

svn_cl__get_human_readable_tree_conflict_description,

svn_cl__append_conflict_info_xml): Update declarations to use

svn_wc_conflict_description3_t.

* subversion/svn/cl.h

(svn_cl__conflict_func_interactive): Update declaration to use

svn_wc_conflict_description3_t.

* subversion/svn/conflict-callbacks.c

(show_diff, show_conflicts, merge_prop_conflict, show_prop_conflict,

edit_prop_conflict, handle_tree_conflict, handle_prop_conflict,

handle_tree_conflict, handle_obstructed_add, conflict_func_interactive):

Use svn_wc_conflict_description3_t instead of svn_wc_conflict_description2_t.

In handle_prop_conflict() we can drop a workaround that was necessary with

the old conflict descriptor.

* subversion/svn/info-cmd.c

(print_info_xml, print_info): Use svn_wc_conflict_description3_t instead of

svn_wc_conflict_description2_t.

* subversion/svn/status.c

(print_status): Update caller.

  1. … 5 more files in changeset.
* subversion/svn/cl-conflicts.c

(local_reason_str): Use an easier to read syntax in

the new description for 'local delete'.

* subversion/tests/cmdline/tree_conflict_tests.py

(actual_only_node_behaviour): Adjust expected output.

Also fixes a test failure accidentally introduced by r1589662.

  1. … 1 more file in changeset.
When the command line client shows tree conflict information, be more

explicit about the fact that an incoming deletion might be part of an

incoming move, and that a missing target during a merge might have

been deleted or moved in the merge target's history. The current

wording is a common source of user confusion. I'm not really sure

if this change helps users a lot but we'll see.

If we ever grow support for incoming moves, we'll need to update

these descriptions again anyway.

* subversion/svn/cl-conflicts.c

(local_reason_str): Add 'operation' parameter, and print

print additional hints about possible causes if the

operation is a merge.

(incoming_action_str): Any incoming delete might be part of

an incoming move, so say "incoming delete or move".

* subversion/tests/cmdline/stat_tests.py

(status_with_tree_conflicts): Adjust expected output.

* subversion/tests/cmdline/switch_tests.py

(tree_conflicts_on_switch_1_2,

tree_conflicts_on_switch_2_1,

tree_conflicts_on_switch_2_2,

tree_conflicts_on_switch_3): Adjust expected output.

* subversion/tests/cmdline/update_tests.py

(tree_conflicts_on_update_1_2,

tree_conflicts_on_update_2_1,

tree_conflicts_on_update_2_2,

tree_conflicts_on_update_3): Adjust expected output.

  1. … 3 more files in changeset.
Revert r1508225, which moved the include of svn_private_config.h before all

includes of our public headers. Public headers shouldn't depend on private

headers and all changes that required this are long reverted on trunk.

This patch excludes all conflicting cases.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

* subversion/libsvn_client/add.c

* subversion/libsvn_client/cat.c

* subversion/libsvn_client/changelist.c

* subversion/libsvn_client/cleanup.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/copy_foreign.c

* subversion/libsvn_client/ctx.c

* subversion/libsvn_client/delete.c

* subversion/libsvn_client/deprecated.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/diff_local.c

* subversion/libsvn_client/diff_summarize.c

* subversion/libsvn_client/export.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_client/import.c

* subversion/libsvn_client/info.c

* subversion/libsvn_client/iprops.c

* subversion/libsvn_client/list.c

* subversion/libsvn_client/locking_commands.c

* subversion/libsvn_client/log.c

* subversion/libsvn_client/merge.c

* subversion/libsvn_client/mergeinfo.c

* subversion/libsvn_client/patch.c

* subversion/libsvn_client/prop_commands.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_client/repos_diff.c

* subversion/libsvn_client/resolved.c

* subversion/libsvn_client/revert.c

* subversion/libsvn_client/switch.c

* subversion/libsvn_client/update.c

* subversion/libsvn_client/util.c

* subversion/libsvn_delta/compat.c

* subversion/libsvn_delta/xdelta.c

* subversion/libsvn_diff/parse-diff.c

* subversion/libsvn_diff/util.c

* subversion/libsvn_fs/access.c

* subversion/libsvn_fs_base/bdb/changes-table.c

* subversion/libsvn_fs_base/bdb/env.c

* subversion/libsvn_fs_base/dag.c

* subversion/libsvn_fs_base/fs.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_base/revs-txns.c

* subversion/libsvn_fs_base/tree.c

* subversion/libsvn_fs_fs/caching.c

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/temp_serializer.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_ra/compat.c

* subversion/libsvn_ra/deprecated.c

* subversion/libsvn_ra/ra_loader.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_serf/blame.c

* subversion/libsvn_ra_serf/blncache.c

* subversion/libsvn_ra_serf/commit.c

* subversion/libsvn_ra_serf/getlocations.c

* subversion/libsvn_ra_serf/getlocationsegments.c

* subversion/libsvn_ra_serf/getlocks.c

* subversion/libsvn_ra_serf/inherited_props.c

* subversion/libsvn_ra_serf/log.c

* subversion/libsvn_ra_serf/merge.c

* subversion/libsvn_ra_serf/mergeinfo.c

* subversion/libsvn_ra_serf/options.c

* subversion/libsvn_ra_serf/property.c

* subversion/libsvn_ra_serf/replay.c

* subversion/libsvn_ra_serf/serf.c

* subversion/libsvn_ra_serf/update.c

* subversion/libsvn_ra_serf/util.c

* subversion/libsvn_ra_serf/xml.c

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/editorp.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_repos/authz.c

* subversion/libsvn_repos/commit.c

* subversion/libsvn_repos/delta.c

* subversion/libsvn_repos/deprecated.c

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_repos/hooks.c

* subversion/libsvn_repos/log.c

* subversion/libsvn_repos/replay.c

* subversion/libsvn_repos/reporter.c

* subversion/libsvn_repos/repos.c

* subversion/libsvn_repos/rev_hunt.c

* subversion/libsvn_subr/auth.c

* subversion/libsvn_subr/cmdline.c

* subversion/libsvn_subr/compat.c

* subversion/libsvn_subr/config.c

* subversion/libsvn_subr/config_auth.c

* subversion/libsvn_subr/deprecated.c

* subversion/libsvn_subr/dso.c

* subversion/libsvn_subr/hash.c

* subversion/libsvn_subr/io.c

* subversion/libsvn_subr/mergeinfo.c

* subversion/libsvn_subr/opt.c

* subversion/libsvn_subr/properties.c

* subversion/libsvn_subr/simple_providers.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_subr/ssl_client_cert_providers.c

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c

* subversion/libsvn_subr/ssl_server_trust_providers.c

* subversion/libsvn_subr/subst.c

* subversion/libsvn_subr/types.c

* subversion/libsvn_subr/username_providers.c

* subversion/libsvn_subr/utf.c

* subversion/libsvn_subr/win32_crypto.c

* subversion/libsvn_wc/adm_crawler.c

* subversion/libsvn_wc/adm_files.c

* subversion/libsvn_wc/conflicts.c

* subversion/libsvn_wc/copy.c

* subversion/libsvn_wc/deprecated.c

* subversion/libsvn_wc/diff_editor.c

* subversion/libsvn_wc/diff_local.c

* subversion/libsvn_wc/entries.c

* subversion/libsvn_wc/externals.c

* subversion/libsvn_wc/info.c

* subversion/libsvn_wc/lock.c

* subversion/libsvn_wc/node.c

* subversion/libsvn_wc/old-and-busted.c

* subversion/libsvn_wc/props.c

* subversion/libsvn_wc/revert.c

* subversion/libsvn_wc/status.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/upgrade.c

* subversion/libsvn_wc/wc_db_update_move.c

* subversion/libsvn_wc/wc_db_wcroot.c

* subversion/mod_dav_svn/repos.c

* subversion/mod_dav_svn/version.c

* subversion/svn/cl-conflicts.c

* subversion/svn/commit-cmd.c

* subversion/svn/conflict-callbacks.c

* subversion/svn/diff-cmd.c

* subversion/svn/help-cmd.c

* subversion/svn/notify.c

* subversion/svn/propedit-cmd.c

* subversion/svn/propget-cmd.c

* subversion/svn/props.c

* subversion/svn/status-cmd.c

* subversion/svn/status.c

* subversion/svn/svn.c

* subversion/svn/util.c

* subversion/svnadmin/svnadmin.c

* subversion/svnlook/svnlook.c

* subversion/svnrdump/dump_editor.c

* subversion/svnrdump/svnrdump.c

* subversion/svnrdump/util.c

* subversion/svnserve/serve.c

* subversion/svnsync/svnsync.c

* subversion/svnsync/sync.c

* subversion/tests/libsvn_fs/fs-test.c

* subversion/tests/libsvn_repos/repos-test.c

* subversion/tests/libsvn_subr/hashdump-test.c

* subversion/tests/libsvn_subr/mergeinfo-test.c

* subversion/tests/libsvn_subr/subst_translate-test.c

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

* subversion/tests/libsvn_wc/op-depth-test.c

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

* subversion/tests/svn_test_fs.c

* tools/server-side/fsfs-stats.c

Move the svn_string_private.h include back to the original location.

  1. … 162 more files in changeset.
Fix the #include order such that svn_private_config.h is always

included first before any other svn header - if we also include

svn_hash.h.

* subversion/bindings/javahl/native/org_apache_subversion_javahl_ConfigImpl_Category.cpp,

subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c,

subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c,

subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c,

subversion/libsvn_auth_gnome_keyring/gnome_keyring.c,

subversion/libsvn_client/add.c,

subversion/libsvn_client/cat.c,

subversion/libsvn_client/changelist.c,

subversion/libsvn_client/cleanup.c,

subversion/libsvn_client/commit.c,

subversion/libsvn_client/commit_util.c,

subversion/libsvn_client/copy.c,

subversion/libsvn_client/copy_foreign.c,

subversion/libsvn_client/ctx.c,

subversion/libsvn_client/delete.c,

subversion/libsvn_client/deprecated.c,

subversion/libsvn_client/diff.c,

subversion/libsvn_client/diff_local.c,

subversion/libsvn_client/diff_summarize.c,

subversion/libsvn_client/export.c,

subversion/libsvn_client/externals.c,

subversion/libsvn_client/import.c,

subversion/libsvn_client/info.c,

subversion/libsvn_client/iprops.c,

subversion/libsvn_client/list.c,

subversion/libsvn_client/locking_commands.c,

subversion/libsvn_client/log.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_client/patch.c,

subversion/libsvn_client/prop_commands.c,

subversion/libsvn_client/ra.c,

subversion/libsvn_client/repos_diff.c,

subversion/libsvn_client/resolved.c,

subversion/libsvn_client/revert.c,

subversion/libsvn_client/status.c,

subversion/libsvn_client/switch.c,

subversion/libsvn_client/update.c,

subversion/libsvn_client/util.c,

subversion/libsvn_delta/compat.c,

subversion/libsvn_delta/xdelta.c,

subversion/libsvn_diff/parse-diff.c,

subversion/libsvn_diff/util.c,

subversion/libsvn_fs/access.c,

subversion/libsvn_fs_base/bdb/changes-table.c,

subversion/libsvn_fs_base/bdb/env.c,

subversion/libsvn_fs_base/dag.c,

subversion/libsvn_fs_base/fs.c,

subversion/libsvn_fs_base/lock.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_fs/caching.c,

subversion/libsvn_fs_fs/fs_fs.c,

subversion/libsvn_fs/fs-loader.c,

subversion/libsvn_fs_fs/lock.c,

subversion/libsvn_fs_fs/temp_serializer.c,

subversion/libsvn_fs_fs/tree.c,

subversion/libsvn_fs_util/fs-util.c,

subversion/libsvn_ra/compat.c,

subversion/libsvn_ra/deprecated.c,

subversion/libsvn_ra_local/ra_plugin.c,

subversion/libsvn_ra/ra_loader.c,

subversion/libsvn_ra_serf/blame.c,

subversion/libsvn_ra_serf/blncache.c,

subversion/libsvn_ra_serf/commit.c,

subversion/libsvn_ra_serf/getlocations.c,

subversion/libsvn_ra_serf/getlocationsegments.c,

subversion/libsvn_ra_serf/getlocks.c,

subversion/libsvn_ra_serf/inherited_props.c,

subversion/libsvn_ra_serf/log.c,

subversion/libsvn_ra_serf/merge.c,

subversion/libsvn_ra_serf/mergeinfo.c,

subversion/libsvn_ra_serf/options.c,

subversion/libsvn_ra_serf/property.c,

subversion/libsvn_ra_serf/replay.c,

subversion/libsvn_ra_serf/serf.c,

subversion/libsvn_ra_serf/update.c,

subversion/libsvn_ra_serf/util.c,

subversion/libsvn_ra_serf/xml.c,

subversion/libsvn_ra_svn/client.c,

subversion/libsvn_ra_svn/editorp.c,

subversion/libsvn_ra_svn/marshal.c,

subversion/libsvn_repos/authz.c,

subversion/libsvn_repos/commit.c,

subversion/libsvn_repos/delta.c,

subversion/libsvn_repos/deprecated.c,

subversion/libsvn_repos/fs-wrap.c,

subversion/libsvn_repos/hooks.c,

subversion/libsvn_repos/log.c,

subversion/libsvn_repos/replay.c,

subversion/libsvn_repos/reporter.c,

subversion/libsvn_repos/repos.c,

subversion/libsvn_repos/rev_hunt.c,

subversion/libsvn_subr/auth.c,

subversion/libsvn_subr/cmdline.c,

subversion/libsvn_subr/compat.c,

subversion/libsvn_subr/config_auth.c,

subversion/libsvn_subr/config.c,

subversion/libsvn_subr/deprecated.c,

subversion/libsvn_subr/dso.c,

subversion/libsvn_subr/hash.c,

subversion/libsvn_subr/io.c,

subversion/libsvn_subr/mergeinfo.c,

subversion/libsvn_subr/opt.c,

subversion/libsvn_subr/properties.c,

subversion/libsvn_subr/simple_providers.c,

subversion/libsvn_subr/sorts.c,

subversion/libsvn_subr/ssl_client_cert_providers.c,

subversion/libsvn_subr/ssl_client_cert_pw_providers.c,

subversion/libsvn_subr/ssl_server_trust_providers.c,

subversion/libsvn_subr/subst.c,

subversion/libsvn_subr/types.c,

subversion/libsvn_subr/username_providers.c,

subversion/libsvn_subr/utf.c,

subversion/libsvn_subr/win32_crypto.c,

subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/adm_files.c,

subversion/libsvn_wc/adm_ops.c,

subversion/libsvn_wc/conflicts.c,

subversion/libsvn_wc/copy.c,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/diff_editor.c,

subversion/libsvn_wc/diff_local.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/externals.c,

subversion/libsvn_wc/info.c,

subversion/libsvn_wc/lock.c,

subversion/libsvn_wc/node.c,

subversion/libsvn_wc/old-and-busted.c,

subversion/libsvn_wc/props.c,

subversion/libsvn_wc/revert.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/translate.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/upgrade.c,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/wc_db_update_move.c,

subversion/libsvn_wc/wc_db_wcroot.c,

subversion/libsvn_wc/workqueue.c,

subversion/mod_dav_svn/activity.c,

subversion/mod_dav_svn/deadprops.c,

subversion/mod_dav_svn/lock.c,

subversion/mod_dav_svn/merge.c,

subversion/mod_dav_svn/mod_dav_svn.c,

subversion/mod_dav_svn/reports/update.c,

subversion/mod_dav_svn/repos.c,

subversion/mod_dav_svn/version.c,

subversion/svnadmin/svnadmin.c,

subversion/svnauth/svnauth.c,

subversion/svn/cl-conflicts.c,

subversion/svn/commit-cmd.c,

subversion/svn/conflict-callbacks.c,

subversion/svn/diff-cmd.c,

subversion/svn/help-cmd.c,

subversion/svnlook/svnlook.c,

subversion/svnmucc/svnmucc.c,

subversion/svn/notify.c,

subversion/svn/propedit-cmd.c,

subversion/svn/propget-cmd.c,

subversion/svn/props.c,

subversion/svnrdump/dump_editor.c,

subversion/svnrdump/svnrdump.c,

subversion/svnrdump/util.c,

subversion/svnserve/serve.c,

subversion/svn/status.c,

subversion/svn/status-cmd.c,

subversion/svn/svn.c,

subversion/svnsync/svnsync.c,

subversion/svnsync/sync.c,

subversion/svn/util.c,

subversion/tests/libsvn_fs/fs-test.c,

subversion/tests/libsvn_repos/repos-test.c,

subversion/tests/libsvn_subr/hashdump-test.c,

subversion/tests/libsvn_subr/mergeinfo-test.c,

subversion/tests/libsvn_subr/subst_translate-test.c,

subversion/tests/libsvn_wc/conflict-data-test.c,

subversion/tests/libsvn_wc/op-depth-test.c,

subversion/tests/libsvn_wc/wc-test.c,

subversion/tests/svn_test_fs.c,

tools/dev/fsfs-reorg.c,

tools/server-side/fsfs-stats.c): #include svn_private_config.h first

  1. … 180 more files in changeset.
Improve the interactive resolution of property conflicts. Similar to

resolving a text conflict, show initially a single line such as

local delete, incoming edit upon merge

and allow the user to display a 3-way diff with a 'dc - display conflict'

option. Previously, for each property that is in conflict, we displayed the

entire contents of the property conflict reject file, which includes all of

the property conflicts on the node, and which is not very readable.

* subversion/svn/cl-conflicts.h,

subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_prop_conflict_description): New function.

* subversion/svn/conflict-callbacks.c

(show_prop_conflict): New function.

(prop_conflict_options): Add a 'dc - display conflict' option.

(handle_prop_conflict): Work around a historical mix-up in the provided

'theirs' and 'merged' and 'conflict-reject file' paths. Display a

summary of the conflict instead of printing the '.prej' file. Show a

3-way diff when the 'dc' option is selected.

  1. … 2 more files in changeset.
* **/**

Run tools/dev/remove-trailing-whitespace.sh to remove all trailing whitespace

before we branch 1.8, like we did before creating previous branches.

No functional changes.

  1. … 199 more files in changeset.
Make the conflict message "local %s %s, incoming %s %s upon %s"

translatable by constructing it from longer parts, each translated,

instead of single words (some of which were not translated at all).

* subversion/svn/cl-conflicts.c

(svn_cl__get_human_readable_tree_conflict_description): Build string out

of translated sub-phrases rather than from single words.

(local_reason_str, incoming_action_str, operation_str): New functions.

(map_conflict_action_human, map_conflict_reason_human,

action_str, reason_str): Removed.

Patch by: Mattias Engdegård <mattiase@bredband.net>

Use svn_hash_gets and svn_hash_sets.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_delta/compat.c

* subversion/libsvn_delta/editor.c

* subversion/libsvn_diff/parse-diff.c

* subversion/libsvn_diff/util.c

* subversion/libsvn_fs/access.c

* subversion/libsvn_fs_base/bdb/changes-table.c

* subversion/libsvn_fs_base/dag.c

* subversion/libsvn_fs_base/fs.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_base/revs-txns.c

* subversion/libsvn_fs_base/tree.c

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/temp_serializer.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_fs_util/fs-util.c

* subversion/libsvn_ra/compat.c

* subversion/libsvn_ra/deprecated.c

* subversion/libsvn_ra/ra_loader.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_serf/blame.c

* subversion/libsvn_ra_serf/blncache.c

* subversion/libsvn_ra_serf/commit.c

* subversion/libsvn_ra_serf/getlocations.c

* subversion/libsvn_ra_serf/getlocationsegments.c

* subversion/libsvn_ra_serf/getlocks.c

* subversion/libsvn_ra_serf/inherited_props.c

* subversion/libsvn_ra_serf/log.c

* subversion/libsvn_ra_serf/merge.c

* subversion/libsvn_ra_serf/mergeinfo.c

* subversion/libsvn_ra_serf/options.c

* subversion/libsvn_ra_serf/property.c

* subversion/libsvn_ra_serf/serf.c

* subversion/libsvn_ra_serf/update.c

* subversion/libsvn_ra_serf/util.c

* subversion/libsvn_ra_serf/xml.c

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/editorp.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/mod_dav_svn/activity.c

* subversion/mod_dav_svn/lock.c

* subversion/mod_dav_svn/merge.c

* subversion/mod_dav_svn/reports/update.c

* subversion/mod_dav_svn/repos.c

* subversion/mod_dav_svn/version.c

* subversion/svn/cl-conflicts.c

* subversion/svn/commit-cmd.c

* subversion/svn/conflict-callbacks.c

* subversion/svn/help-cmd.c

* subversion/svn/propedit-cmd.c

* subversion/svn/propget-cmd.c

* subversion/svn/status-cmd.c

* subversion/svn/status.c

* subversion/svn/svn.c

* subversion/svn/util.c

* subversion/svnadmin/svnadmin.c

* subversion/svndumpfilter/svndumpfilter.c

* subversion/svnlook/svnlook.c

* subversion/svnmucc/svnmucc.c

* subversion/svnrdump/dump_editor.c

* subversion/svnrdump/load_editor.c

* subversion/svnrdump/svnrdump.c

* subversion/svnrdump/util.c

* subversion/svnserve/serve.c

* subversion/svnsync/svnsync.c

* subversion/svnsync/sync.c

  1. … 70 more files in changeset.
Following up on r1432470, tweak xml output a bit.

* subversion/svn/cl-conflicts.c

(svn_cl__append_conflict_info_xml): Use argument name 'type' to avoid

confusion with the 'kind' argument for tree conflicts. Add the operation.

Following up on r1432454, make 'svn info' print more of the conflict

information that is now available, instead of still just printing

what we originally stored for conflicts in svn_wc_entry_t.

info.rnc needs updating after this patch. I expected to copy and paste

the missing pieces (src-left, etc.) from the tree conflicts, but these

aren't defined yet, while introduced in 1.6.

* subversion/svn/cl-conflicts.c

Renamed from tree-conflicts.c

(map_conflict_kind_xml): New map.

(svn_cl__append_tree_conflict_info_xml): Rename to...

(append_tree_conflict_info_xml): ... this and make static.

(svn_cl__append_conflict_info_xml): New function that handles all conflict

kinds.

* subversion/svn/cl-conflicts.h

Renamed from tree-conflicts.h

(svn_cl__append_tree_conflict_info_xml): Rename to...

(svn_cl__append_conflict_info_xml): ... this. Update docstring.

* subversion/svn/conflict-callbacks.c

(includes): Updated for rename.

* subversion/svn/info-cmd.c

(includes): Follow rename.

(print_info_xml): Delegate all conflict work to

svn_cl__append_conflict_info_xml.

(print_info): Print left and right version for the first conflict, instead

of just for tree conflicts.

* subversion/svn/status.c

(includes): Updated for rename.

* subversion/svn/tree-conflicts.c

Renamed to cl-conflicts.c

* subversion/svn/tree-conflicts.h

Renamed to cl-conflicts.h

  1. … 6 more files in changeset.