Chris Mullins said:
[Use Subversion over VSS]
Subversion is free, and so much better than VSS it's not even funny.
While I'm in the "Anything is better than Source Safe" camp, I'm curious
what you like about Subversion?
Pretty much everything I've used about it. Some things though:
1) It's really fast (compared with VSS)
2) Proper changeset support
3) Fully transactional
4) Properly client-server (only diffs go each way)
5) To see what you've changed, you don't even need to go to the server
(unless you want to see recent changes of other people)
6) Good merge support
7) Really cheap branching
8) Flexible and versioned metadata
9) Each working copy knows where it belongs on the server rather than
the other way round - having multiple copies of the source around
isn't difficult at all, if you want it.
10) Using "switch" means that you don't *need* multiple copies around
as often. Working on a branch and want to go to a different one?
Just switch... basically you can do Team System's "shelving" pretty
easily, just in a few more steps.
11) Directories are versioned as well as files.
12) No attic! (vs CVS...)
13) Renaming is supported without losing history (or affecting
other branches) - a rename is just a "copy object" followed by
a "delete old object" in the same transaction.
14) It's free.
15) The book (
http://svnbook.red-bean.com/nightly/en/svn-book.pdf)
is also free, and really good.
I've only glanced at it, but it seemed like
another source control system. I liked that it was based on WebDav and would
be suitable for remote development, but other than that what features are in
there that you like?
Well, it's not *just* based on webdav - there are various ways to
access it. We use the "native" svn protocol at work.
Does it integrate into the VS.NET 2005 IDE? I didn't make much use of Source
Control Integration in VS.NET 2003, but the new round of integration points
from both Microsoft (for VSS) and SourceGear (for Vault) is leaps and bounds
ahead of where it was a few years ago. I would have a hard time giving this
up...
There are a couple of SCC plugins which I haven't tried, and Ankh which
I've tried briefly. Ankh's not really finished yet, but I haven't
investigated further as I'm not using VS at the moment. The Eclipse
plugin is good though
TortoiseSvn is a good Windows client, if you don't mind it not being
integrated into VS. (It's an Explorer plugin.)
Is there a bug tracking tool that integrates with it? (Sourcegear's Vault
has this, but their bug tracking tool could be quite a bit better). I would
like to be able to check code in, and have it tied to an issue #, so that I
can later look and see what was worked on from a bug perspective.
I believe it's integrated with a number of bug systems, but if the one
you want to work with has appropriate ways into it, SVN has a
reasonably flexible set of hooks, so you can do things like getting
which bug number has been fixed out of the comment (so long as people
follow a convention), then talk to a web service (or whatever) to
update your bug database.
Lastly, does Subversion support workflow? I would love to have code checked
in every night (for backup - call this level 1), checked in for code review
(call this level 2), checked in and part of the nightly build (call this
level 3).
You could easily do that with branching/merging - have a "private"
branch for your own checkins, then use its merge facilities to roll
those changes into the next branch up when you're ready for that, then
the next etc until you reach the main line.