guberm / tortoisegit

Automatically exported from code.google.com/p/tortoisegit
0 stars 0 forks source link

Overlay icons gradually disappear afer a short time #2436

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Install TortoiseGit 1.8.13.0 on Windows 7 x64, set overlay icons to "Default"
2. Browse a few directories with different repositories
3. Watch the icons as you browse

What is the expected output? What do you see instead?
Icons of versioned files should always be displayed. Most of the time it's the 
green "unmodified" or the red "modified" icon.
Instead, after a few minutes, most icons are simply missing. Killing 
TGitCache.exe and refreshing the directory view helps for a while, until the 
icons disappear again.

What version of TortoiseGit and msysgit are you using? On
what operating system?
TortoiseGit 1.8.13.0 (C:\Program Files\TortoiseGit\bin) 
git version 1.9.5.msysgit.0 (C:\Program Files (x86)\Git\bin) 
Windows 7 x64 SP1

Please provide any additional information below.
With 1.8.12, I often had the problem that icons were outdated after a while. 
That was annoying because you never knew whether the information displayed was 
correct. It was very unreliable and eventually useless in that form. But at 
least the mean time to failure was within the range of days.
Now with 1.8.13, at least I know when the information is wrong. That is when 
icons of files I know are versioned no longer appear. Unfortunately, the mean 
time to failure today is within minutes.
I'm not sure whether I should believe it's getting better or worse.

Original issue reported on code.google.com by yves.goe...@gmail.com on 23 Feb 2015 at 6:06

GoogleCodeExporter commented 9 years ago
When the icons disappear, is TGitCache.exe consuming high CPU load?

I don't experience such problems. Can you please try to gather debug 
information? See https://code.google.com/p/tortoisegit/wiki/HOWTO_Debug

Original comment by sstrickr...@googlemail.com on 23 Feb 2015 at 10:59

GoogleCodeExporter commented 9 years ago
No, it's sitting very still.

Meanwhile I've helped myself with a 30-minute timer to kill TGitCache.exe. But 
even once, icons were already missing 30 seconds after the process was 
restarted.

The OutputDebugString monitor will interfer with any other debugger like Visual 
Studio running. Also, capturing is always global so won't be limited to 
TortoiseGit. And there's a lot of noise on that channel. Isn't there an option 
to have the debug messages written to a regular log file?

Original comment by yves.goe...@gmail.com on 24 Feb 2015 at 12:05

GoogleCodeExporter commented 9 years ago
Does it refresh again after right-clicking in that folder(repository)?

Original comment by yuelinho...@gmail.com on 25 Feb 2015 at 12:54

GoogleCodeExporter commented 9 years ago
I just had another problem with it. I didn't see any icons at all any more. All 
were gone. I'm using Speed Commander most of the time. So I tried to 
right-click one of my folders to open it up in Explorer, but the context menu 
didn't appear. Speed Commander was locked unresponsive. Then I killed 
TGitCache.exe and Speed Commander was alive and free again, and all my icons 
were back in that moment.

TortoiseGit does awful things to my computer. And it's getting worse. :-(

Original comment by yves.goe...@gmail.com on 25 Feb 2015 at 8:23

GoogleCodeExporter commented 9 years ago
There is no way for logging into a regular log file.

I don't experience such problems and, thus, am unable to reproduce and fix it 
without further information. Sorry. :(

Original comment by sstrickr...@googlemail.com on 28 Feb 2015 at 9:54

GoogleCodeExporter commented 9 years ago
I've located only a handful instances of OutputDebugString function calls, so 
it would be easy to replace them by something else. My C++ skills are way too 
limited to add, build and use another logging library. But I might be able to 
just open a fixed file on disk and redirect all of these function calls to 
fwrite or something. Time stamps might be missing 
(string/char*/wchar[]/LPSTR/LPWCSTR manipulation in C is too hard for me). Let 
me see what I can come up with.

Just tried to build it but failed in auto-mode. Then read the docs saying I 
need external modules. But Git refused to update them. So I need to re-clone it 
all with the recursive option. This will take longer than expected. I'll report 
back if other issues come in my way.

Will it be enough to build a TGitCache program file with logging and replace it 
in an installed environment or will I have to install the complete package and 
reboot the computer after each build?

Original comment by yves.goe...@gmail.com on 28 Feb 2015 at 10:24

GoogleCodeExporter commented 9 years ago
Cloning and submodule update + --init should do the trick that everything is 
there whats needed for TortoiseGit to build.

Building TGitCache, killing it and replacing it should be enough.

Building + killing + starting in debug mode in VS should also work.

Original comment by sstrickr...@googlemail.com on 28 Feb 2015 at 10:27

GoogleCodeExporter commented 9 years ago
I could download and build the solution with dependencies. I also managed to 
redirect all log calls in Utils/DebugOutput.h to a file, including a time 
stamp. (My code is not yet thread-safe, so some time stamps and messages are 
mixed up.)

After browsing a number of project directories, including larger ones, the file 
(UTF-16) is already 3.5 MB large (compressed 100 kB), containing 14,000 lines. 
Are you sure that these messages can be useful in analysing issues with the 
overlay icons? And is it enough to collect debug messages TGitCache.exe or are 
other processes also needed?

Original comment by yves.goe...@gmail.com on 1 Mar 2015 at 12:47

GoogleCodeExporter commented 9 years ago
I have a log file and icons have disappeared. See attachment. Does that help 
you?

Original comment by yves.goe...@gmail.com on 3 Mar 2015 at 9:25

Attachments:

GoogleCodeExporter commented 9 years ago
Calling 'git gc' fixed the icons for that single repository, but they're still 
missing in others. I guess the gc triggers some change in the .git directory 
which makes TortoiseGit reconsider everything and resolve previous errors.

PS: My log file is limited to the last lines that contain the affected 
repository. I only edited and occasionally reverted files today, no commits or 
more complex actions. I did open file context menus from time to time. (I 
noticed that causes extra log lines.)

Original comment by yves.goe...@gmail.com on 3 Mar 2015 at 9:58

GoogleCodeExporter commented 9 years ago
Sorry for the spam. The 'git gc' "fix" didn't last long, some icons are already 
missing again.

Original comment by yves.goe...@gmail.com on 3 Mar 2015 at 10:04

GoogleCodeExporter commented 9 years ago
I suppose we have two combined issues here:
1. You have other overlay handlers installed, causing TortoiseGit overlay 
handlers to be partly overridden. I suppose you don't see "unversioned" overlay 
icons, check out TortoiseGit settings, Overlay handler. There you should see 
that N other handlers are installed and, thus, some of TorotiseGit are missing. 
See http://tortoisesvn.net/faq.html#ovlnotall for help
2. There was a bug (I found yesterday) in TortoiseGit which made icons 
sometimes show as "unversioned" for files when a file in a subfolder was 
modified (see 290375fc48e5689381c71e1c2cb3fc82e30411f5).

It would be great if you could test our latest preview release (>= 1.8.13.1): 
https://download.tortoisegit.org/tgit/previews/

Original comment by sstrickr...@googlemail.com on 29 Mar 2015 at 3:43

GoogleCodeExporter commented 9 years ago
That's what is says (complete visible text):

There are currently 13 overlay handlers installed besides the ones Tortoise 
uses. TortoiseGit will not show the following overlays: Unversioned, Assume 
valid/unchanged ("Needs-lock" in TortoiseSVN), Ignored, Skip worktree ("Locked" 
in

I don't know what these other 13 applications should be. I can remember Google 
Drive shows some icons, but only in the shared folder which is far away from 
all my code folders. But apart from that, I'm okay with unversioned and ignored 
files not marked. I don't know what the other mentioned types are and what more 
types are probably not even displayed here.

I'll try the latest preview release and report back when I still have the issue.

Original comment by yves.goe...@gmail.com on 29 Mar 2015 at 6:13

GoogleCodeExporter commented 9 years ago
@Yves: Is this fixed with our latest preview?

Original comment by sstrickr...@googlemail.com on 7 Apr 2015 at 1:51

GoogleCodeExporter commented 9 years ago
I haven't come to use it much recently so I can't say whether it's fixed.

Original comment by yves.goe...@gmail.com on 8 Apr 2015 at 6:43

GoogleCodeExporter commented 9 years ago
I consider this issue fixed as of 1.8.14.0.
Please add a new comment if this issue is still there for you.

Original comment by sstrickr...@googlemail.com on 8 Apr 2015 at 7:00