Refresh Status in Visual Studio targets only current file
Moderator: SourceGear
Refresh Status in Visual Studio targets only current file
Sometimes files get checked in or out outside of Visual Studio. In the "old" VSS-days, we would hit the "refresh status" button of the Source Control toolbar to reflect the scc-changes made outside of Visual Studio. This all worked fine with VSS. With Vault however, only the currently selected file is checked and updated, all other files in the solution are being left out. Then again, upon closing and reopening the solution, the status of all files is updated automatically to reflect the actual checkin/out status of each and every file. Why isn't this done, when I explicitly request a "refresh status"?
I think I need more details on where you want to see this and what you are seeing. I'm not getting that behavior when I do that. When you edit behind VS and then go into the same file in VS are you seeing the changes? Are you performing the refresh in VS and then looking at a status in Vault or vice versa?
Just let me know some more details and I'll try again.
Just let me know some more details and I'll try again.
It's all about the checked-out status of the scc-controlled files within a solution. The solution explorer in VS shows diffferent icons for files that are checked in and those that are checked out. When this state changes by checking in or out not within VS, but within the vault client, VS does not notice this, which is ok. But if I explicitly refresh the scc status (VS/File/Source Control/Refresh Status) the only file being refreshed is the file that is currently selected in the solution explorer, not all files within the solution. The latter can be accomplished only by closing and reopening the solution. This behaviour is different from the behaviour with VSS as scc provider.
Ok, I think I know what you are saying.
I opened a project in VS, then went to Vault, checked out some files. I went back to VS and only clicked on the top of the solution tree instead of on the files I checked out, then selected File-Source Control-Refresh Status. For me, all the files I had checked out now showed a checked out status. I tried it once while having a file I never touched selected and was able to get the checked-out status.
Are you performing similar steps and getting different results than me, or are you performing different steps?
I opened a project in VS, then went to Vault, checked out some files. I went back to VS and only clicked on the top of the solution tree instead of on the files I checked out, then selected File-Source Control-Refresh Status. For me, all the files I had checked out now showed a checked out status. I tried it once while having a file I never touched selected and was able to get the checked-out status.
Are you performing similar steps and getting different results than me, or are you performing different steps?
Yes, that's exactly the scenario. I just tried it over and over again and now I'm getting closer - it seems to be all about the timing. If I change the status in the Vault client, and then switch to VS to do a refresh status, the files involved only show a change if they are selected. However, if I keep on trying, without selecting anything else, after about 7 or 8 retries and some 10 to 15 seconds, the other files also reflect their new status. After doing some more tests, it seems to be all about the timing, not the amount of retries. So I just need to be a bit more patient when switching between the Vault client and VS.