I did use SourceSafe many years a go for a few projects - I soon found that things with VSS didn’t always work to plan. As a result I have been sans-source control for a while now. Most project have been pretty small and only involved a few developers. My new project means this needs to change and I needed a robust source control system that can grow with the project. Over the last week I looked at CVS etc and then stumbled upon Vault and it's implicit free single user licence (perfect for my current situation). Anyway up until now I have been directly accessing my mixed VB and C# asp.net application directly through a frontpage share on my development server using VS.NET 2003. Periodically I’d use copy web to make a backup of the whole project with the date and time appeneded to tht esubweb name. Having read up on things, especially this link (describing source control and VS.NET):
http://msdn.microsoft.com/library/defau ... dionet.asp
and other threads here I am now totally sold on Vault 2.0. I've installed Vault server on my dev server and successfully added my files using the vault GUI client - it took about one minute to add my file using the client. I first tried to do it with the VS.NET IDE on my development workstation but it just seemed to keep hanging during the Add to source control stage – not sure why. Anyway having read the FAQ on this board about the Vault GUI vs. the VS IDE I decide I was better off using the vault GUI client anyway.
So I now have my files added into my default repository (using the client on my dev server) and can check them in and out into my working directory on a separate machine (my dev workstation - this is the machine with VS.NET on it). This is where I become a little unsure as to how to do things correctly. As I understand it I think I should be doing the following first few point (if I want my own isolation/sandbox copy), and then it gets a little hazy as you’ll see:
1. Fire up Vault Client on my workstation machine with VS.NET.
2. Specify location for my working copy (using vault gui client) to be a folder mapped as a virtual directory in IIS on my workstation machine. (This should allow me to test and debug changes made to the web application on http://localhost before checking them back in to the dev server)
3. Get latest version. I now have a copy of what is on the dev server that is accessible through http://localhost/virtualdiretoryname.
4. If I check a file out and edit it, save and check back into the server I can see that my file version (in vault client) increment on both local and remote. If I check the local workstation file then I can see that this change has been made (by opening the file directly through windows explorer). However if I look at the file in the directory I originally added (i.e. initial step where I chose ‘add files’ to my default repository) on my dev server then the change are not there (I still have the original file as originally added to vault). To test this further I added a file to my working directory and then used the add files... command in the client to add this to the repository on the dev server. I cannot find this file anywhere on the development server (did a search for filename.txt on all local drives and it is nowhere to be seen).
Q. This leads me to think that maybe I am missing something pretty big with respect to how source servers work. Is it the case that all of this data is simply dropped straight in to the vault DB on SQL server? No files are created after the initial add files command – unless you use the client to get a working copy?
5. Hope I'm making sense here. If the answer to question above is yes does this mean I now have to use the client on my dev server to create a local stable build of my application (using working copy), whilst using the client on my workstation to (along with it's local copy mapped to http://localhost) to make new changes and debug etc. (N.B. Other people need to be able to access a relatively stable version of the development server version - I plan to use the Label or PIN functionality to manage the application at various stable points). Once I have a stable version built on the server I'll then use this as the basis for creating an installer to deploy the application (multiple times for different clients) on my staging and live servers.
6. Once I have sorted the above issues out, the next big thin that confuses me is how to go about building the various projects. Do I just fire up vs.net and connect to the project files in my dev workstation working directory when wanting to build my sandbox http://localhost version and connect separately to the dev server version when I want to build the more stable versions? If this is correct then this step, as far as I can see, does not require Vault to be involved during the build process. I simply create an new solution connect to both projects and build the projects as required and next time I fire up the vault client it will recognise that any dll's that have changed as a result of the build and handle them as renegade or edited. Is this correct?
I suspect that I have got all of the above completely wrong. I'm not new to asp.net or web development (over 10 years) - just source control and sandboxes and locally isolated development copies etc etc. Anyway if you got this far, thanks for bearing with me. If you can shed any light on any of my problems/assumptions by way of links or answers then that would be great. Hopefully I will see the light tomorrow – I’m off to bed now so thanks for listening.
thanks
webrob123
P.S. Sorry for the rambling nature of this post – it’s been a long week.
New to Source Control and need advice..
Moderator: SourceGear