I try to merge 2 versions of a source file (fileV1a and fileV1b), using tkdiff 4.1.3 on Solaris 8.
The files are not managed by any source configuration management tool.
I would like to have automatic merge of non conflicting evolutions, so I use the common ancestor file (fileV0) in my commande line :
tkdiff fileV1a fileVb -a FileV0 -o fileV1
Unfortunately, I don't see any effect of the "-a FileV0" argument. I get the same state if I don't use it.
Can someone tell me what is the problem ?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You are both (surprisingly) correct. V4.3.3 should resolve this completely. Apparently prior to this release, how TkDiff processed a "3-way" diff was almost exclusively centered on finding collision situations - and not much more. What made it confusing was in the code it appeared to be making automatic merge choices also (as it should), but in reality it was then reverting those choices (not realizing it had found something , just not an actual collision). In any event, the logic has been revisited, revised, and only when NO definitive choice exists, is the recently defined "user preferred" side then applied (in earlier days - like when this issue was reported by you - this was simply the "Left" side).
As an added bonus, when using the recent Split/Combine features, it is even possible to fully resolve simple collisions while performing the merge. Simple collisions are those that affect the same diff hunk, but not the same physical line. While it is still true that Tkdiff does not display the full text of the ancestor file itself, those lines still present in the Left/Right files derived from the ancestor that are responsible for making the merge side choice are now marked in the display to guide you in perhaps melding the changes together via carefull Splitting of the hunk in question. This is EXACTLY why the Split feature was created in the first place.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi all,
I try to merge 2 versions of a source file (fileV1a and fileV1b), using tkdiff 4.1.3 on Solaris 8.
The files are not managed by any source configuration management tool.
I would like to have automatic merge of non conflicting evolutions, so I use the common ancestor file (fileV0) in my commande line :
tkdiff fileV1a fileVb -a FileV0 -o fileV1
Unfortunately, I don't see any effect of the "-a FileV0" argument. I get the same state if I don't use it.
Can someone tell me what is the problem ?
I have the same exact problem. There is no way to view the ancestor file!
Please help!
You are both (surprisingly) correct. V4.3.3 should resolve this completely. Apparently prior to this release, how TkDiff processed a "3-way" diff was almost exclusively centered on finding collision situations - and not much more. What made it confusing was in the code it appeared to be making automatic merge choices also (as it should), but in reality it was then reverting those choices (not realizing it had found something , just not an actual collision). In any event, the logic has been revisited, revised, and only when NO definitive choice exists, is the recently defined "user preferred" side then applied (in earlier days - like when this issue was reported by you - this was simply the "Left" side).
As an added bonus, when using the recent Split/Combine features, it is even possible to fully resolve simple collisions while performing the merge. Simple collisions are those that affect the same diff hunk, but not the same physical line. While it is still true that Tkdiff does not display the full text of the ancestor file itself, those lines still present in the Left/Right files derived from the ancestor that are responsible for making the merge side choice are now marked in the display to guide you in perhaps melding the changes together via carefull Splitting of the hunk in question. This is EXACTLY why the Split feature was created in the first place.