On 25.09.2013 10:52, Tobias Kaes wrote:
>> On 24.09.2013 14:29, Tobias Kaes wrote:
>>> Hi, I've seen cases where TortoiseMerge doesn't match up
>>> left/right sides of changes properly anymore. On the left side it
>>> marks lines orange (removed) which are still there on the right
>>> side. Seems to be triggered when moving a snipped of code while
>>> at the same time replacing it with a smaller snippet. Example
>>> files + screenshot attached.
>>>
>>> Originally observed in 1.8.0 and updating to 1.8.2 didn't help.
>>
>> Not sure why you think that's a bug.
>>
>> The lines *are* removed and added again but at another location. So
>> TMerge correctly shows that the lines are removed at the original
>> location and the new line on the right. The lines however are moved
>> further down to a new function, and so TMerge shows those lines
>> added again at the new location.
>>
>> TMerge is a diff tool, it does not know about functions or code or
>> whatever. It only knows about lines.
>
> That's alright, I didn't expect it to understand the file content,
> I'm expecting it to do a line-by-line comparison minimizing the
> number of edit operations. I've been using TMerge for years and this
> diff totally caught me off guard (never seen this behaviour before)
> and in terms of a diff it makes not much sense to me.
>
> I've annotated the screenshot and attached it again to show which
> lines I mean. Note that the marked orange+white lines did not change
> at all so I don't see why they can't be white+white in the first
> place (that's what I would have expected).
>
> I'm reading the colors as remove/insert operations, so orange blocks
> on the left side have been removed, yellow blocks on the right side
> have been inserted, gray is padding to keep lines aligned. So
> orange+yellow means to me "line has been replaced" and orange+gray
> "line has been deleted" - so what is orange+white supposed to tell
> me?
I see the problem now. First checks indicate that this is due to the
moved-blocks detection, not the actual diff algorithm.
This will take a while to analyze and fix.
In the mean time, you can disable the moved-blocks detection by creating
the registry DWORD value
HKCU\Software\TortoiseMerge\ViewMovedBlocks
and set it to zero.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest interface to (Sub)version control
/_/ \_\ http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3065248
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2013-09-25 21:13:42 CEST