On Feb 4, 2008 9:32 PM, <kfogel_at_tigris.org> wrote:
> Author: kfogel
> Date: Mon Feb 4 21:32:46 2008
> New Revision: 29189
> Fix part of issue #3048 and issue #3049: interactive conflict
> resolution should offer better merge and diff choices.
> This commit doesn't implement the better choices, but it moves the
> current (worse) choices to elsewhere in the interactive command space,
> thus reserving proper slots for the better choices later.
> * subversion/svn/cl.h
> (svn_cl__accept_t): New enums svn_cl__accept_theirs_all and
> (SVN_CL__ACCEPT_MINE_ALL, SVN_CL__ACCEPT_THEIRS_ALL): New words.
> * subversion/svn/conflict-callbacks.c
> (svn_cl__accept_from_word): Parse new words. Don't parse old words
> that aren't yet implemented.
> (svn_cl__conflict_handler): Handle new choices, including a new
> '(D)iff-all' choice. Handle the corresponding old choices by
> printing warnings about how they're not implemented yet.
> * subversion/svn/resolved-cmd.c
> (svn_cl__resolved): Handle new --accept option values.
> * subversion/svn/main.c
> (svn_cl__options, svn_cl__cmd_table): Mention the new choices, and
> don't mention the old ones since they're currently unimplemented.
> * subversion/include/svn_wc.h
> (svn_wc_conflict_choice_t): New enums svn_wc_conflict_choose_mine_all
> svn_wc_conflict_choose_theirs_all. Update all comments, though.
> (svn_wc_resolved_conflict3): Update documentation accordingly.
> * subversion/include/svn_client.h
> (svn_client_resolved2): Update documentation accordingly.
> * subversion/libsvn_wc/merge.c
> (svn_wc__merge_internal): Adjust to use the new choices.
> * subversion/libsvn_wc/props.c
> (maybe_generate_propconflict): Same.
> * subversion/libsvn_wc/adm_ops.c
> (resolve_conflict_on_entry): Same.
> * subversion/tests/cmdline/basic_tests.py
> (automatic_conflict_resolution): Adjust accordingly.
> * subversion/tests/cmdline/update_tests.py
> (update_accept_conflicts): Same.
> * subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout: Same.
> Modified: trunk/subversion/include/svn_client.h
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/include/svn_client.h?pathrev=29189&r1=29188&r2=29189
> --- trunk/subversion/include/svn_client.h (original)
> +++ trunk/subversion/include/svn_client.h Mon Feb 4 21:32:46 2008
> @@ -2830,10 +2830,16 @@
> * If @a conflict_choice is @c svn_wc_conflict_choose_base, resolve the
> * conflict with the old file contents; if
> - * @c svn_wc_conflict_choose_mine, use the original working contents;
> - * if @c svn_wc_conflict_choose_theirs, the new contents; and if
> + * @c svn_wc_conflict_choose_mine_all, use the original working contents;
> + * if @c svn_wc_conflict_choose_theirs_all, the new contents; and if
> * @c svn_wc_conflict_choose_merged, don't change the contents at all,
> - * just remove the conflict status (i.e. pre-1.5 behavior).
> + * just remove the conflict status, which is the pre-1.5 behavior.
> + *
> + * (@c svn_wc_conflict_choose_theirs and @c svn_wc_conflict_choose_mine
> + * are not yet implemented; the effect of passing one of those values
> + * as @a conflict_choice is currently undefined, which may or may not
> + * be an underhanded way of allowing real behaviors to be added for
> + * them later without revving this interface.)
> * If @a path is not in a state of conflict to begin with, do nothing.
> * If @a path's conflict state is removed and @a ctx->notify_func2 is non-NULL,
> Modified: trunk/subversion/include/svn_wc.h
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/include/svn_wc.h?pathrev=29189&r1=29188&r2=29189
> --- trunk/subversion/include/svn_wc.h (original)
> +++ trunk/subversion/include/svn_wc.h Mon Feb 4 21:32:46 2008
> @@ -1163,10 +1163,12 @@
> resolving the conflict here and now. libsvn_wc will then do the
> work of "installing" the chosen file.
> - svn_wc_conflict_choose_base, /* user chooses the original version */
> - svn_wc_conflict_choose_theirs, /* user chooses incoming version */
> - svn_wc_conflict_choose_mine, /* user chooses his/her own version */
> - svn_wc_conflict_choose_merged /* user chooses the merged version */
> + svn_wc_conflict_choose_base, /* original version */
> + svn_wc_conflict_choose_theirs, /* incoming version */
> + svn_wc_conflict_choose_mine, /* own version (for conflicted hunks) */
> + svn_wc_conflict_choose_theirs_all, /* incoming (for conflicted hunks) */
> + svn_wc_conflict_choose_mine_all, /* own version */
The comments here don't seem to match up.
Also, to join in the bikeshedding: use of the word "all" in the
context of the resolver prompt really really suggests to me "'M'
(mine-all) means answer 'm' (mine) to this prompt and any others which
may follow it", not "'M' does something qualitatively different from
'm'". I can't remember off the top of my head what programs use this
convention but they are not uncommon.
David Glasser | firstname.lastname@example.org | http://www.davidglasser.net/
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-02-07 23:22:21 CET