I currently use Vault, and I am very happy with the product. For the most part, I use the integration with Visual Studio 2003's IDE, and so I work with my source code in a very SourceSafe-like manner - Check Out/Edit/Check In.
I've been thinking recently that I'd like to move towards using the Vault Client for most everything, instead of using the IDE integration. I also think I'd like to try Edit/Merge/Commit. But before I take the plunge, I want to make sure I understand what I'm in for. Here are a few questions:
1) Changing Edit/Merge/Commit is a change I have to make everywhere, right? I can't limit this to certain projects or repositories. If so, then it seems like I would need to remove IDE integration on all my projects before switching the Vault option to "CVS Style", right?
2) Once a project or solution is set-up to work with IDE integration, how do I remove IDE integration? Ore more generally, what steps do I need to follow to achieve the above goals?
3) Are there any pitfalls or things that I need to watch out for when making this switch? I'd like to avoid messing things up too badly, if possible, which is why I've avoided this change previously, despite being intrigued by it.
Any suggestions would be greatly appreciated. Thanks.
Changing things midstream
Moderator: SourceGear
Re: Changing things midstream
One thing to note is that you can use CVS style in the GUI client, but this is independent of the IDE, because Visual Studio requires the VSS style (must have checked out files, and files must be read-only when not checked out and read-write when checked out). So the GUI client and the IDE can work differently at the same time.alovhaug wrote:I
1) Changing Edit/Merge/Commit is a change I have to make everywhere, right? I can't limit this to certain projects or repositories. If so, then it seems like I would need to remove IDE integration on all my projects before switching the Vault option to "CVS Style", right?
But, yes, CVS style applies to every folder in the GUI client, so you can't choose it for just one folder. However, note that you can still checkout files in CVS mode like before. CVS style checks the file system for newly edited non-checked out files, and it marks those files as edited rather than renegade, so they can be checked in without having to be checked out. But you can checkin files that are checked out too.
In Visual Studio, go to File->Source Control->Change Source Control and unbind all solutions and projects, and then checkin the changes made to the project/solution file. Note that this will cause the project to not be available for source control for any users after this point (and not just to you).2) Once a project or solution is set-up to work with IDE integration, how do I remove IDE integration? Ore more generally, what steps do I need to follow to achieve the above goals?
There are a number of different things we do in CVS mode, and they can each be turned on/off separately.
3) Are there any pitfalls or things that I need to watch out for when making this switch? I'd like to avoid messing things up too badly, if possible, which is why I've avoided this change previously, despite being intrigued by it.
For example, the way we define CVS mode is that other operations don't immediately happen. For instance, if you delete a file, it will go into the pending change set rather than be applied to the server immediately. Then when you do the next commit operation, it will be included. This specific option can be turned off if you like.
Tools->Options->Concurent Development Style shows all the different options that can be independently used.
Hope this helps
Thanks - this is very helpful. This has inspired a few more questions:
1) So, I'm taking your response to mean that even if I change to CVS style, the IDE will continue to work like it is in SourceSafe style, right? So it seems to me that I will want to unbind all my projects in all my repositories before doing this, so that the Visual Studio IDE doesn't get confused. Does that make sense?
2) A lot of my projects are web projects, which are historically a major pain to get set-up on another machine. I'm thinking that if IDE integration is turned off, that will make it just slightly easier to get the project setup on a new machine. Are there directions you can point me to for how to set-up an existing ASP.NET project on a new machine?
3) Finally, here's just a completely dumb question: Once I am using the Vault client instead of the VS IDE, I don't need to keep closing down Visual Studio each time I want to grab something from Vault, right? That would be yucky. (Or does that depend on the Concurrent Development Style settings...)
Also - just a comment: I didn't find the help file for "Concurrent Development Style" particularly helpful. I realize they are different, but it isn't immediately obvious to someone like me what the difference between "Require Check Outs" and "Always Request Exclusive Locks". Links to other information in the help that might provide more details on this could make it easier to understand the subtleties of each. (I'm not asking for help on this - I found the information I need, but this is just my friendly suggestion...)
Thanks again for your assistance!
1) So, I'm taking your response to mean that even if I change to CVS style, the IDE will continue to work like it is in SourceSafe style, right? So it seems to me that I will want to unbind all my projects in all my repositories before doing this, so that the Visual Studio IDE doesn't get confused. Does that make sense?
2) A lot of my projects are web projects, which are historically a major pain to get set-up on another machine. I'm thinking that if IDE integration is turned off, that will make it just slightly easier to get the project setup on a new machine. Are there directions you can point me to for how to set-up an existing ASP.NET project on a new machine?
3) Finally, here's just a completely dumb question: Once I am using the Vault client instead of the VS IDE, I don't need to keep closing down Visual Studio each time I want to grab something from Vault, right? That would be yucky. (Or does that depend on the Concurrent Development Style settings...)
Also - just a comment: I didn't find the help file for "Concurrent Development Style" particularly helpful. I realize they are different, but it isn't immediately obvious to someone like me what the difference between "Require Check Outs" and "Always Request Exclusive Locks". Links to other information in the help that might provide more details on this could make it easier to understand the subtleties of each. (I'm not asking for help on this - I found the information I need, but this is just my friendly suggestion...)
Thanks again for your assistance!
Yes, the issue is more that Visual Studio might misinterpret what a read-write file means (sometimes it thinks it means the file is checked out, even when it isn't). So, it would be safest to unbind first.alovhaug wrote:
1) So, I'm taking your response to mean that even if I change to CVS style, the IDE will continue to work like it is in SourceSafe style, right? So it seems to me that I will want to unbind all my projects in all my repositories before doing this, so that the Visual Studio IDE doesn't get confused. Does that make sense?
I think the only thing you'll need to do here is make sure Vault's working folder matches the location of the web files, and it should work fine.
2) A lot of my projects are web projects, which are historically a major pain to get set-up on another machine. I'm thinking that if IDE integration is turned off, that will make it just slightly easier to get the project setup on a new machine. Are there directions you can point me to for how to set-up an existing ASP.NET project on a new machine?
You should not have to keep restarting the IDE. If you have an open file in VS, and you do a Get that changes it underneath, VS will prompt you for whether to accept the change.3) Finally, here's just a completely dumb question: Once I am using the Vault client instead of the VS IDE, I don't need to keep closing down Visual Studio each time I want to grab something from Vault, right? That would be yucky. (Or does that depend on the Concurrent Development Style settings...)
Thanks for the comment - it is always good to know where things are confusing for users, so we can make it easier to find info later.Also - just a comment: I didn't find the help file for "Concurrent Development Style" particularly helpful. I realize they are different, but it isn't immediately obvious to someone like me what the difference between "Require Check Outs" and "Always Request Exclusive Locks". Links to other information in the help that might provide more details on this could make it easier to understand the subtleties of each. (I'm not asking for help on this - I found the information I need, but this is just my friendly suggestion...)