Resolve individual prop conflicts [was: Bug in conflict summary after partial resolution]
From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Wed, 1 May 2013 23:50:34 +0100 (BST)
I (Julian Foad) wrote on 2013-04-25:
> I (Julian Foad) wrote:
>> There is a second bug, closely related. If there are multiple prop
>> conflicts on the same node, they all get marked as resolved as soon
>> as you request any one of them to be marked as resolved. There is
>> incomplete API support for marking individual properties as resolved
>> so that may be hard to fix.
> How hard can it be to add full support for marking individual properties
> as resolved? I see two distinct levels to "full support".
> Firstly, to fix the bug in interactive resolution, support is needed in
> libsvn_wc to ensure that when a conflict resolver callback (called from
> libsvn_wc/conflicts.c) returns any kind of 'resolved' result for a
> property conflict, the WC should mark only that specific property as
> resolved. That would be enough to fix the interactive conflict resolution.
> I'm looking at how feasible this might be.
The answer is, it requires changes within libsvn_wc, but AFAICT it doesn't require any public or inter-library API changes.
The attached patch shows roughly what is needed, but is not finished and does not yet work properly.
Because it looks like it can be done within libsvn_wc, I am inclined not to rush to get this into 1.8.0, but to aim for 1.8.1 instead.
> Secondly, we might want to enhance the 'svn resolve' UI to allow
> specifying a particular property. I see that as being a comparatively minor
> enhancement. (We could also add such an option to the svn_client_resolve() API,
> but the API can always be given a callback function that only resolves conflicts
> on a specific property so there is no need for the API to expose such an option
> The best idea I have *short of* getting "full" support by fixing
> libsvn_wc is to make 'svn' track how many of the propery conflicts you
> resolved, and if you resolved some but not all of them then print a warning that
> all of the properties were marked as resolved. That's not great but would
> be simple to implement and would improve the user experience a bit.
> It might be possible to leave all of the property conflicts on that node
> *unresolved* if they're not all resolved, which is probably a better user
> experience, but I'm not sure how we'd do that purely in the client.
> Once the callback has returned any kind of "resolved" result for one
> property, libsvn_wc currently marks all prop conflicts on the node as resolved
> before calling the callback for the next property, and I don't know of any
> good way to avoid that.
This is an archived mail posted to the Subversion Dev mailing list.