Does anyone have any advice regarding alternatives to VSS?
I have used Rational ClearCase years ago so am well aware of VSS's problem areas, primarily it's lack of parallel development streams.
Powerful though CC was, I found it it a bit "too powerful" (i.e. complicated) for the small team in my current job (the team where I used it was much bigger and globally located). I also found it rather unfriendly...
I would ideally like something with a similar look/feel to VSS, but with a few additional features such as better handling of timezones and internet connections to the database (and parallel stream support).
And I'm sure you'd like other features, such as "works reliably without regularly running extra checks and backups". VSS is probably unique in the world of source control systems in that its developers always use something else.
There are a fair number of systems around, depending on your requirements, but
formatting link
is one of the most popular choices (combine it with
formatting link
for a windows gui, or use one of the many other guis and client plugins available).
Lol, you are right, that would be nice too! Personally I've not had a reliability issue with VSS so didn't want to specify that, though I am aware of it's reputation...
Is that a fact regarding VSS's developers?
Ok, thanks, I'll look into that one.
Are there any commercial alternatives? I'm just curious, quite happy to use open source solution :)
where an overwhelming majority of people said that they have dumped their commercial version control software, predominately Merant / Serena Change Manager (also known as PVCS) in favor of Subversion. You may want to search out this thread topic for some first hand accounts of the plusses and minuses of the tool.
Apparently so - the first choice at MS is a variant of Perforce, although they may now use their newer system ("Team System", which is not actually a version control system in the same sense).
formatting link
I have no direct experience of VSS myself, and am only passing on what can be found with a quick google:
formatting link
There are a couple of dozen commercial solutions, and at least a dozen open source solutions, depending on what you want. Some comparisons might give you a few useful ideas:
I have the server running on a Mac mini and clients on both Windows and OS X and it works well. Running the server on a Windows box is as easy as using a service wrapper, or less easy if you install Apache.
...And another vote here. I've set up and administered Subversion for small teams with multi-gigabyte repositories (including a lot of binary files), and fairly demanding use of branching and tagging, and they love it. Server is Apache on Linux, and clients are on Linux, OS X and 'doze.
The KDE project recently switched to Subversion, which is a significant endorsement. Many other large projects have also chosen it.
A short time spent with user anecdotes should inoculate anyone against it. The quote from the svn-vs-vss link above has always stuck in my mind, "Visual SourceSafe? It would be safer to print out all your code, run it through a shredder, and set it on fire."
My personal favorite is Perforce. I don't use the GUI, so I can't really comment on that, but it is similar in many ways to ClearCase snap-shot views, but much easier to maintain. In particular, I like the fact that there is no meta-data kept in the "view".
For personal use it is free-as-in-beer.
Sadly, I am required to use Source Offsite at my day-job and find it ... appalling ... so our prefs may differ dramatically.
--
Michael N. Moran (h) 770 516 7918
5009 Old Field Ct. (c) 678 521 5460
CVS is better than nothing, but it has been completely superseded by Subversion. Having used both, there is no advantage to choosing CVS of these two, only some very worrying disadvantages. Subversion presents a CVS-like set of basic operations but goes far beyond them.
Some things that Svn does much better (just a short list of things that matter to me, there are many others):
atomic commits of multiple files and directories
renames
directory versioning
binary file handling
cheap tagging and branching
lock-free distributed development
For a much more comprehensive comparison, see:
formatting link
"The designers of Subversion have created an open-source version control tool that fixes the flaws and addresses shortcomings in the popular Concurrent Versions System (CVS) version control system."
Subversion home page,
formatting link
To choose CVS over Subversion at this point in time could only be put down to inadequate research.
However, there are other excellent open source version control systems, with different feature sets and sweet spots (such as integrated support for distributed development):
GNU Arch,
formatting link
Mercurial,
formatting link
Bazaar-NG,
formatting link
and Git, designed for the high demands of Linux kernel development,
formatting link
formatting link
Subversion has the same attributes. A wide range of front-ends and plugins are available.
ClearCase - Requires kernel modules as the "local" checkout is actualy a fake file system view onto the server. - Very complex to administer and uses lots of resources, CC admins are expensive.
PerForce
formatting link
- Traditional client server system. Doesn't seem to do anything that can't be done using free alternatives.
BitKeeper
formatting link
- Decentralised system. - Was uses for the Linux Kernel until a political argument over reverse engineering the wire protocol caused grief.
Open Source: (Don't forget that for at least some of these systems it is possible to buy commerical support)
Subversion:
formatting link
- Design to be a "Better CVS" generally achieves the aim but has some odd deisgn decisions and quirks. - Commerial support available from
formatting link
SVK:
formatting link
- Decentralised system based on Subversion
CVS:
formatting link
- The granddaddy of concurrent version control systems, has some fundamental issues but is extremely mature. - Commerial support available from
formatting link
There are various other systems like darcs, Codeville, monotone, git etc. but they are either at early stages of development or are only suitable for UNIX systems.
-p
--
Gotch, n. A corpulent beer-jug of some strong ware.
Gotch, v. To surprise with a remark that negates or usurps a remark
I can't agree with this. I've yet to find a "free" alternative that does not keep meta-data in the source view. E.g. .CVS and .svn directories and the files they contain.
Also, the ClearCase - like "view specs" are nice for mixing and matching independent shared source code repositories for different projects.
Most revision control systems seem to be geared toward individual projects rather than sharing source code among many projects.
If only perforce were GPL, then it would be ... perfect ;-)
--
Michael N. Moran (h) 770 516 7918
5009 Old Field Ct. (c) 678 521 5460
Yes, this can be very handy. I haven't seen any open source tools that can do this.
The big thing I don't like about CVS is the automatic source merging, which gives no option to the user to do a manual merge or to inspect the result before committing. I have had to fix up these merges in the past after inspecting them. I remember seeing some documentation saying that automatic merges will not be a problem if the team members all communicate (which rules out the majority of teams out there).
I presume Subversion has a similar "feature".
The view specs are probably the biggest reason for ClearCase's popularity. If it didn't have that, I don't think many people would put up with the other drawbacks.
There are some perforce drawbacks that annoy me at times. I use the Windows GUI modes normally, but trying to use the command line from Linux is very annoying (it's easy to sync the entire repository and all branches, but I have to specify a full path name to sync just the current directory).
The fact that it does not carry metadata in the working copy makes it more suitable for managing configuration, etc. It also has more support for 'disconnected' working patterns than basic Subversion (which even by itself facilitates disconnected/distributed work in ways that CVS does not).
I believe that function can be provided by a Subversion client -- e.g. Eclipse's Synchronise view (although I don't use it).
I suffered VSS for many years. I would *never* allow it back into any shop I had influence over.
It was unreliable - all of our databases were reported "corrupt", the client would often refuse to complete operations, and the server got clagged up with millions of tiny files.
It was crude - unscriptable (at least in V5, because you couldn't easily specify which database to connect to from the command line)
It was inefficient - sharing and branching became slower and slower as the database grew.
It was unscaleable - without extra add-ons it doesn't scale offsite.
And most of all it was 'fascist' - it imposed a strict exclusive-checkout model rather than the merge-and-checkin model of more scaleable systems.
Most of our development team migrated to CVS and later to Subversion, which suited the way we worked a lot better -- and it was almost trivial to move procedures and even data between CVS and SVN. VSS -- well, it's a relic, used on legacy projects, with horrid clunky procedures that nobody can easily modify.
I'm not saying OSS=automatically good, MS=automatically bad; VSS is probably OK if you have a small number of simple Windows projects, but it just doesn't work for large numbers of inter-related projects that have to exist across lots of versions and are constantly evolving. For that, you need a source code control system that's dynamic, approachable, flexible and utterly reliable - CVS and Subversion both suit me fine.
My current workplace is a CVS shop, it's done some incredibly good work building its own utilities on top of CVS to make handling large multi-component projects and complex branching structures tractable. I don't like CVS as much as Subversion (which I think is supremely elegant inside) but with the right tools on top of it, CVS can be very powerful indeed.
(Personally, I use Subversion at home for versioning most of the config and key software components of my *ix boxes).
pete
--
pete@fenelon.com "That is enigmatic. That is textbook enigmatic..." - Dr Who
"There's no room for enigmas in built-up areas." - N Blackwell
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.