Checkout
Julian Foad
committed
on 24 Apr 13
Fix a bug in the Summary of Conflicts when using interactive conflict
resolution. Marking a text conflict as resolved but leaving a prop co… Show more
Fix a bug in the Summary of Conflicts when using interactive conflict

resolution.  Marking a text conflict as resolved but leaving a prop conflict

unresolved on the same file, or vice versa, would decrement both the text

and prop conflict summary stats.

Found by: Mattias Engdegård <mattiase{_AT_}bredband.net>

* subversion/svn/cl.h

 (svn_cl__conflict_stats_t): New structure type.

 (svn_cl__conflict_stats_create,

  svn_cl__conflict_stats_resolved): New functions.

 (svn_cl__get_conflict_func_interactive_baton,

  svn_cl__get_notifier): Take 'conflict_stats' as a parameter.

* subversion/svn/conflict-callbacks.c

 (svn_cl__interactive_conflict_baton_t): Add a 'conflict_stats' field.

 (svn_cl__get_conflict_func_interactive_baton): Initialize the new field.

 (conflict_func_interactive): New function, containing what was the

   body of svn_cl__conflict_func_interactive().

 (svn_cl__conflict_func_interactive): Re-write as a wrapper, and adjust

   the conflict stats if conflict_func_interactive() returns a value that

   means the conflict will be marked as resolved.

* subversion/svn/notify.c

 (notify_baton): Replace the separate conflict stats fields with a

   pointer to a conflict stats structure.

 (svn_cl__conflict_stats_t): New structure definition.

 (store_path,

  svn_cl__notifier_print_conflict_stats): Adjust for the extra level of

   indirection in notify_baton.

 (notify): The same, and don't adjust the conflict stats when handling

   a 'resolved' notification.

 (svn_cl__get_notifier): Adjust to take the conflict stats as a parameter

   instead of initializing the stats here.

* subversion/svn/svn.c

 (sub_main): Create a conflict stats structure here and pass it along when

   getting the notifier and when getting the conflict resolver callback.

Show less