Get Latest (recursive) via Visual Studio 2012
Get Latest (recursive) via Visual Studio 2012
We have been testing SourceVault in our environment for a few weeks and it's going great! We have 5 days left on our trial license and are about to purchase, but have one little issue we would like to get some info about before moving forward.
In Visual Studio 2012, if we get latest on a folder, it does not get files recursively. For example, user A creates a new file and checks it in to the repository. User B does a get latest on the root folder in Visual Studio and the file does not get pulled locally. We have every executable running as admin (SV and VS) and permissions are set correctly on the folder structures. We have also set the global recursive setting in our source control options in Visual Studio 2012. However, if we open up the Vault Client and get latest on the root folder from the repository, the files will get pulled to the local machine. We are pretty tied to SV at this point, so we will be purchasing licenses regardless, but if we could find out if this is a bug or just a configuration setting we are missing, it would be great.
Thanks in advance!
In Visual Studio 2012, if we get latest on a folder, it does not get files recursively. For example, user A creates a new file and checks it in to the repository. User B does a get latest on the root folder in Visual Studio and the file does not get pulled locally. We have every executable running as admin (SV and VS) and permissions are set correctly on the folder structures. We have also set the global recursive setting in our source control options in Visual Studio 2012. However, if we open up the Vault Client and get latest on the root folder from the repository, the files will get pulled to the local machine. We are pretty tied to SV at this point, so we will be purchasing licenses regardless, but if we could find out if this is a bug or just a configuration setting we are missing, it would be great.
Thanks in advance!
Re: Get Latest (recursive) via Visual Studio 2012
Here's a possible cause:
When the user adds a file, Visual Studio should update the project file as well. Is the user who adds the file checking in the project file along with the added file?
The project file maintains a list of files in the project. If the project file isn't checked in, the next user who does a get doesn't have the latest version of the project file, and Visual Studio doesn't know about the new file.
Meanwhile, we'll try to reproduce the problem.
When the user adds a file, Visual Studio should update the project file as well. Is the user who adds the file checking in the project file along with the added file?
The project file maintains a list of files in the project. If the project file isn't checked in, the next user who does a get doesn't have the latest version of the project file, and Visual Studio doesn't know about the new file.
Meanwhile, we'll try to reproduce the problem.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
Re: Get Latest (recursive) via Visual Studio 2012
That makes sense. Our environment is somewhat unique in that we treat our web apps as a file based system, so we just open the physical files and folders rather than a solution or project file. In VSS this worked ok as we have never had solution or project files in our source control.
Do you think this may be something that will be added into the future possibly?
Do you think this may be something that will be added into the future possibly?
Re: Get Latest (recursive) via Visual Studio 2012
Are you using Vault Enhanced Client integration with Visual Studio?
If so, maybe the Classic Client would work better for you.
You would need to unbind your project from the Enhanced Client and rebind it to the Classic Client. The Classic Client is similar to what VSS uses for Visual Studio integration.
Here are details on rebinding:
http://support.sourcegear.com/viewtopic ... 375#p68375
If so, maybe the Classic Client would work better for you.
You would need to unbind your project from the Enhanced Client and rebind it to the Classic Client. The Classic Client is similar to what VSS uses for Visual Studio integration.
Here are details on rebinding:
http://support.sourcegear.com/viewtopic ... 375#p68375
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
Re: Get Latest (recursive) via Visual Studio 2012
Hello Linda,lbauer wrote:The project file maintains a list of files in the project. If the project file isn't checked in, the next user who does a get doesn't have the latest version of the project file, and Visual Studio doesn't know about the new file.
I have noticed this issue as well and it has come up again recently. In my opinion this is a design flaw in Vault and the VS plugin. There is always that a developer may forget to check-in the project file or even think it unnecessary, moreover it may be contrary to IT policy as the project file also contains other path specific mappings which may not be relevant between developers and could cause other issues.
Suggested changes:
As a developer on a team, since a working directory must be established to work on files in the repository, I would recommend that files not sync solely based on the project file, but also on the physical presence/absence of the files in the working directory. This way, if a file is declared in the project file but physically missing it will produce an alert/error, and likewise when the contrary is true it will still download ALL files from the repository which are mapped to the working directory. The developer should then be alerted to the presence of the new file at which time he/she may decide what to do with it.
Also, correct me if wrong, but as I understand it project files are considered unmergeable by default. If this is the case the my above suggestion is particularly important since it would be an all or nothing overwrite of your local project file.
A minor correction, it's actually the project file (vbproj, csproj, etc.) which contains the file mappings and declarations.
Best regards,
Matthew
Re: Get Latest (recursive) via Visual Studio 2012
Thanks for your comments.
However, if a file is is listed in the project file but not in the working folder, you should see the status in Solution Explorer. It's possible that this doesn't work in all project types, so if you can tell us what type of project you have, we can test it here.
I'll log a feature request to look into this. Some of the Visual Studio/Vault integration behavior is determined by Visual Studio, so we may be limited in what changes we can make.if a file is declared in the project file but physically missing it will produce an alert/error, and likewise when the contrary is true it will still download ALL files from the repository which are mapped to the working directory.
However, if a file is is listed in the project file but not in the working folder, you should see the status in Solution Explorer. It's possible that this doesn't work in all project types, so if you can tell us what type of project you have, we can test it here.
That's correct. The default can be changed by adding the file extension (*.csproj, etc) to the list of mergeable files in the Vault Admin Web Client, under Repositories ->(Repository Name) -> File Types.as I understand it project files are considered unmergeable by default
You do not have the required permissions to view the files attached to this post.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
Re: Get Latest (recursive) via Visual Studio 2012
Hello Laura,
I'm sorry for such a late reply, it's amazing how quickly I can become inundated with projects.
Nearly all of our projects are VB.NET with a few C#.NET and we have an assortment of projects between VS2008 and VS2010. In this particular case I believe it was a VS2008 project.
I think the behavior displayed in your screenshot would be great, but I have observed that the icon indicating a missing file seems to only appear when the project file has been updated properly which has not been happening for whatever reason. I can help you test further if you like, just let me know what you need. I'll provide specific details in the future as I notice this issue arise.
Best regards,
Matthew
I'm sorry for such a late reply, it's amazing how quickly I can become inundated with projects.
Nearly all of our projects are VB.NET with a few C#.NET and we have an assortment of projects between VS2008 and VS2010. In this particular case I believe it was a VS2008 project.
I think the behavior displayed in your screenshot would be great, but I have observed that the icon indicating a missing file seems to only appear when the project file has been updated properly which has not been happening for whatever reason. I can help you test further if you like, just let me know what you need. I'll provide specific details in the future as I notice this issue arise.
Best regards,
Matthew
Re: Get Latest (recursive) via Visual Studio 2012
>>the missing file seems to only appear when the project file has been updated properly which has not been happening for whatever reason.>>
Is the project file not updating due to a Vault problem, or because of user preference?
Is the project file not updating due to a Vault problem, or because of user preference?
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager