Excessive refreshes in 3.0.7?
Moderator: SourceGear
Excessive refreshes in 3.0.7?
I have a 3.0.7 client running against a 3.0.5 server. It seems that this version is doing a lot more refreshing of the file lists than previous versions. It looks like about once per second or so, the "Looking for changes in the working folders" message flashes on an off, the wait cursor appears, and the file list flashes.
This is a new computer, and it's only ever had 3.0.7 installed on it, so I don't have anything else to compare it to where Vault 3.0.7 is the only change. I'm compiling the code right now (VC++ 7.1), and the flashes seem to roughly correspond to new filenames appearing in the Visual Studio output window. I just stopped the build, and the refreshing stopped as well, so it looks like this is being triggered by the compilation process.
This is a new computer, and it's only ever had 3.0.7 installed on it, so I don't have anything else to compare it to where Vault 3.0.7 is the only change. I'm compiling the code right now (VC++ 7.1), and the flashes seem to roughly correspond to new filenames appearing in the Visual Studio output window. I just stopped the build, and the refreshing stopped as well, so it looks like this is being triggered by the compilation process.
This is probably due to a change we made in 3.0.6, where we scan for changes to working folders when we get notified that something in the folder has changed. We used to rely completely on .Net telling us that a particular file has changed, but that turned out to be unreliable.
Now when we get a notification, we rescan in the background. It shouldn't keep rescanning the same folder over and over again, but it probably does rescan for each folder defined in your project. Compilation will no doubt touch a lot of working folders, so it will be rescanning folders during that time.
I guess the question is: does this interfere with other things you are trying to do, or is it just surprising because it is different?
Now when we get a notification, we rescan in the background. It shouldn't keep rescanning the same folder over and over again, but it probably does rescan for each folder defined in your project. Compilation will no doubt touch a lot of working folders, so it will be rescanning folders during that time.
I guess the question is: does this interfere with other things you are trying to do, or is it just surprising because it is different?
Having all changed files listed properly in the GUI is a good thing. It seems odd that a compilation would cause refreshes, though, unless you're refreshing on file read, or creation/modification of files within a folder that doesn't correspond to a folder in vault.
Okay, I can now reproduce this without involving the compiler.
The root of the source tree is here:
$/Code/Solution/...
which maps to the d:\Solution directory.
Compiler intermediate files go here
d:\Solution\Build\Obj\Project\Config\
If I open a command prompt in the above directory, and do this:
echo > junk.obj
then the refresh happens. It also happens when I delete the junk.obj file from the command line.
There is no $/Code/Solution/Build folder in vault.
At the time, the Vault GUI was partially visible, and the flickering was a bit disconcerting.
The real annoyance is that each time the refresh happens, the caret in the file list is reset to the first item in the list. The selection persists, but the moving caret messes with using the keyboard to navigate through the file list to do diffs on changed files.
Okay, I can now reproduce this without involving the compiler.
The root of the source tree is here:
$/Code/Solution/...
which maps to the d:\Solution directory.
Compiler intermediate files go here
d:\Solution\Build\Obj\Project\Config\
If I open a command prompt in the above directory, and do this:
echo > junk.obj
then the refresh happens. It also happens when I delete the junk.obj file from the command line.
There is no $/Code/Solution/Build folder in vault.
At the time, the Vault GUI was partially visible, and the flickering was a bit disconcerting.
The real annoyance is that each time the refresh happens, the caret in the file list is reset to the first item in the list. The selection persists, but the moving caret messes with using the keyboard to navigate through the file list to do diffs on changed files.