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

RE: TortoiseMerge Bug Report (freeze on long line display)

From: Justin Klein <metal450_at_gmail.com>
Date: Thu, 15 Dec 2011 21:15:37 +0700

>> It would be even more straightforward if you could mail a sample file that exhibits the problem

Attached. Note that the .sql file is trimmed down so it isn't actually valid mysql anymore, but in this case that doesn't really matter.

As you scroll down with TortoiseMerge (you can just copy the file and diff it with itself), you'll see it start to lockup below line 300, getting even worse the further you proceed ("worse" in regards to how long it takes to recover from the "freeze").

I believe the issue has something to do with repainting/invalidating, as simply dragging a window around atop TortoiseMerge when it's scrolled to one of these "long-line regions" causes it to repaint visibly slowly, and its CPU usage spikes. Note that you can open the file in i.e. Wordpad and scroll all the way up and down without a hiccup.


-----Original Message-----
From: Simon Large [mailto:simon.tortoisesvn_at_gmail.com]
Sent: Thursday, December 15, 2011 8:44 PM
To: users_at_tortoisesvn.tigris.org
Subject: Re: TortoiseMerge Bug Report (freeze on long line display)

On 15 December 2011 12:59, Justin Klein <metal450_at_gmail.com> wrote:
> TortoiseSVN community,
> This issue concerns TortoiseMerge freezing/locking up when a particularly
> long line of text is brought onto the display during a “diff” operation.
> Reproducing it is pretty straightforward:
> 1) Prepare a file that begins with “reasonable”-length lines, but contains a
> grouping of very long lines somewhere farther down. A mysql export
> containing some large database rows would be a good example.

It would be even more straightforward if you could mail a sample file
that exhibits the problem, otherwise we have to try to guess your
definition of "reasonable length", "very long lines" and "some large
database rows".

Soon would be good as another release is due out this weekend.

> 2) Check it in, modify it, right click on the modified file in your local
> working copy, and select “Compare with Base.”
> 3) When the TortoiseMerge window comes up, scroll to a screen that contains
> one or several very long lines of text
> 4) TortoiseMerge will now lock up. The longer the lines and the more of
> them on the screen, the longer the freeze lasts - sometimes it will become
> responsive again within a few seconds, but in many cases I’ve left it for
> more than 10 minutes and it never recovered. Bringing up the Windows XP
> Task Manager reveals TortoiseMerge.exe’s process pegged at ~25% CPU usage.
> No more scrolling or activity is possible during this time – the process
> must be forcibly terminated from the task manager.
> I’ve observed this issue ever since first starting to use TortoiseSVN over a
> year ago, and it is reproducible 100% of the time. Below you can find a
> screencapture that shows the issue, where you can see the settings of my
> TortoiseMerge display as well as the “freeze” itself. Note that as I scroll
> UP to the very long lines, there are “somewhat long lines” which cause it to
> lockup for relatively shorter periods of a second or two:
> http://screencast.com/t/J8A2NEyi4GO
> (Although “TortoiseMerge.exe” typically remains pegged at 25%, this
> particular video shows a slightly lower usage because of the capture
> software itself).
> As you can see in this example, the issue is very troublesome when diffing
> files like mysql exports, which often do have long lines. The only way I
> can diff *most* of the file is by discovering where the long lines are (i.e.
> by waiting for it to crash), terminating it, then jumping over that section
> to diff the rest of the file.
> I’m currently using TortoiseSVN 1.7.2, Build 22327 - 32 Bit , 2011/11/29
> 22:43:53
> It’s running on WinXP x86 with all service packs and updates applied.


:       ___
:  oo  // \\      "De Chelonian Mobile"
: (_,\/ \_/ \     TortoiseSVN
:   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
:   /_/   \_\     http://tortoisesvn.net
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].

Received on 2011-12-15 15:16:15 CET

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