[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Possible TortoiseMerge bug

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Wed, 25 Sep 2013 21:13:33 +0200

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

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.