Question

My company is using Visual SourceSafe (VSS) and Visual Studio 2005 (soon 2008). They want to switch to CVS, but the developers don't want to lose the integration we get with VSS and Visual Studio.

I know there are CVS plugins, but what functionality, if any, is lost with CVS?

Was it helpful?

Solution

Screaming at VSS for lost source code, etc. Seriously though, it is a very different model (optimistic locking), so you will probably lose some productivity for the first little while. I would probably look at using TortoiseCVS and "Open Folder In Windows Explorer" right-click or the Visual Studio Explorer plug-in rather than a CVS plug-in if you are using Visual Studio 2008 (all of the CVS plug-ins I have tried have had either serious functionality issues, or serious stability issues).

VSS is really a terrible source control system, and moving to a modern style (optimistic locking) source control system will be a huge boon in the long run. You might want to skip the 1990s all together though and move to Subversion/Git/Mercurial and get into the 2000s.

OTHER TIPS

If you're going to switch, why not switch to something better? CVS is a long way from state of the art in version control. A more modern system like Subversion or Vault not only offers better features, but it will get you better Visual Studio integration as well.

If you must switch to CVS (Subversion or a distributed VCS would be better) then the script we used to migrate and keep the change history can be found here.

We are very happy with CVS, although we don't use Visual Studio integration as we find TortoiseCVS and SmartCVS much better. However if I was switching now I would look at Git or Mercurial.

My hack is as follows:

I am mainly a Java developer and I use Eclipse/RAD. The support for CVS is great and is very easy to work with.

For the C# work I do I tried to find a CVS plugin for Visual Studio but was unhappy with the one I found. In the end, I decided to use Eclipse to handle the versioning of my C# projects.

The procedure:

  1. Create a simple project in Eclipse
  2. Open VS and save the project into the directory created by Eclipse
  3. Return to Eclipse, press F5 to refresh the project
  4. Share the project (i.e. add to CVS)
  5. Add .sln to the list of externally handled files in the Eclipse settings
  6. VS can now be opened directly from Eclipse by clicking the .sln file, the project can be worked on within VS. Upon exit from VS the project must be refreshed in Eclipse and can be synchronised with CVS

Although I have not yet used the Subversion plugin, I guess that would work in a similar way.

This solution works well for me especially as I spend most my time in Eclipse anyway.

I did try using TortoiseCVS but found it tricky to use. Eclipse is free and the CVS interface is very usable.

Visual Studio has a bad integration inside the IDE for CVS and SVN. Those free ones don't work well. I use Tortoise (outside Visual Studio), and it works fine. If you want something inside Visual Studio, you might check for not free plugin or to use TFS.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top