Three-way conflict marker for properties (*.prej files)
From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Tue, 6 May 2014 11:08:55 +0000
I'm looking into enabling 3-way conflict markers for property conflicts.
Consider the following case:
In ... the property's value is...
Right now, if the code is switched to
"Trying to change property 'edit.del'\n"
Shouldn't the output in that case be:
"Trying to change property 'edit.del'\n"
?
Daniel
--- That function has some interesting logic around those BASE and Merge-LHS values: /* Pick a suitable base for the conflict diff. * The incoming value is always a change, * but the local value might not have changed. */ if (original == NULL) { if (incoming_base) original = incoming_base; else original = svn_string_create_empty(scratch_pool); } else if (incoming_base && svn_string_compare(original, mine)) original = incoming_base; Here, ORIGINAL is the variable that's eventually passed in the ORIGINAL (aka, OLDER) version formal parameter of the diff3 API; however, the code sometimes sets the variable "original" to the ORIGINAL version, and sometimes to the INCOMING_BASE version. I don't quite understand this. Why does it make sense to set the variable 'original' to a different value (other than the empty string) if it is NULL? If one of the four sides of the merge happened to be a nonexistent value, then that (a null value) is what should be displayed, no? i.e., the function should either always set the variable "original" to the ORIGINAL version, or always set that variable to the INCOMING_VERSION version. Does that sound right? DanielReceived on 2014-05-06 13:09:54 CEST |
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.