Checkout
stsp
committed
on 19 Aug 14
Undo the introduction of svn_wc_conflict_description3_t.

Instead of revving svn_wc_conflict_description2_t ("desc2"), we can extend the
str… Show more
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.

Show less