Sunday, June 18, 2017

All TortoiseSVN actions from the context menu are very slow

Leave a Comment

Every TortoiseSVN action I take from the context menu in Windows Explorer is extremely slow. For example, it takes ~91 seconds to open the About dialog. Results are the same for any other TortoiseSVN action I take from the context menu. However, if I login to a local administrator account, I don't have this problem. Additionally, once a TortoiseSVN dialog finally opens, further actions that I take within that dialog don't seem to be slow at all.

I'm running v1.9.5.27834 (and I've tried rolling back to earlier versions.) I have IPv6 disabled across the board. I've uninstalled and reinstalled multiple times, as well as manually removed all applicable %APPDATA% folders and registry keys I could find. I have no mapped network drives.

For what it's worth, I'm on a newly-imaged machine. I have a feeling that the backup restore restored some settings for my user account that are causing some conflict/timeout here (hence my uninstalling and removing %APPDATA%\TortoiseSVN, %APPDATA%\Subversion, etc.)

4 Answers

Answers 1

Usually, Tortoise SVN can be slow because of Icons Overlays:

Every file and folder has a Subversion status value as reported by the Subversion library. In the command line client, these are represented by single letter codes, but in TortoiseSVN they are shown graphically using the icon overlays.

This feature is very resource hungry and turning it off could dramatically increase performance of context actions and the whole system.

Please, refer this guide for disabling it.

Alternatively, you can filter displaying icons only on specific paths. To do that open Settings dialog -> Icon Overlays -> Exclude paths and put

C:\* 

Then set the include paths to the path where the working copy is:

C:\users\<username>\projects\someprojectname* 

Answers 2

Try to create another user profile from scratch, and see if the issue is still present on that new user.

That kind of lag usually comes from a resource which freezes.
It does timeout and is killed by the system.

Try to check these:
- your network connections
- the send (AppData\Roaming\Microsoft\Windows\SendTo) explorer-context menu
- the Explorer shell extension handlers (in the registry, classes_root)
- You can also check the Event Viewer for errors when you try to use SVN.
- Finally use Process Explorer from Sysinternals; it provides many tools to figure out what's going on deep under a process.

Answers 3

First, try latest nightly for 1.9 branch, next enable ipv6 again, the nightly you use uses ipv6, so disabling is a bad idea.

To see why also the latest nightly of TortoiseSVN is slow you need to install the Windows Performance Toolkit, which is part of the Windows 10 SDK (if you still use Windows 7, use the v1511/Build 10586 SDK, because this is the last version that works on Windows 7, for Windows 8(.1) and Windows 10 use the latest Windows 10 SDK).

enter image description here (all other entries can be unselected)

Run WPRUI.exe, select First Level, CPU Usage and click on start. Now do the slow right click in Explorer and try to go to about dialog, after you did this slow action, click on Save to save the data into a ETL file.

Now double click on the generated ETL file to open the ETL in WPA, setup and load debug symbols in WPA (add the debug symbol server from TortoiseSVN to the dialog in WPA).

Drag & Drop the CPU Usage (Precise) graph to analyse pane

enter image description here

and look for WAIT (µs) max for Explorer.exe in the table view to see that long hang and expand the stack to see where it happens.

Now WPA should show you the function of TSVN take take most time.

One idea is that TSVN tries to detect the last available version but it fails because you disabled ipv6.

Answers 4

It doesn't seems to be a Tortoise SVN specific problem, more an administrative one on your account. As the local admin as no problems, I suppose it may be related with hidden folders and user permissions.

What about it the .svn folder is not writeable for the current user, hence every single write (and maybe every read) fails, making you wait a counple of tenth of a second for each of those?

I would check the rights on the .svn folder of the project you are working on.

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment