Software development is an iterative process that benefits from coordination between developers and with historical archives. To facilitate such practices, developers can turn to special versioning software. In this article we will explore Subversion, one of the most recently released version control suites. Read the article at DevChannel.
Subversion: The new-generation CVS
2004-05-29 General Development 26 Comments
Anyone who’s been reading the comments on these Subversion stories knows I’ve been getting my employer to deploy Subversion as a source control system. Coupled with the incredibly easy to use TortoiseSVN front-end (which acts as an explorer extension) it makes source-control incredibly easy, certainly more than SourceSafe, which is what I’ve worked on in the past. Basically, on Windows, you don’t even need to bother with all those commands! And setting up and starting the server is ridiculously simple.
If you combine it with MantisBT for bug-tracking (which is admittedly a bit harder to set up) you’ll have an enormously powerful, easy to use and best of all free of change development management framework!
DC is a continuos integration system designed to be modular, and can use SVN or CVS (more in the future)as the repository backend. Then it has many frontends for bug tracking, best of which is JIRA.
It is still in beta, but it rules builds for many (all?) the projects at CodeHaus.
Is mantisBT better than bugzilla?
whats the best subversion GUI for linux?
Does anyone have any experience with using Subversion with Visual Studio?
My employer is a Microsoft-shop but we’re getting a little p*ssed off with SourceSafe and was wondering what the advantages and disadvantages are of using Subversion in a Microsoft environment, and whether there have been any problems in migrating from SourceSafe to Subversion.
I’ve replaced CVS with Subversion throughout our development lab. Anyone used to CVS will have about two hours learning curve.
It works great cross-platform (some developers on on Visual Studio, most on Linux) and handles binary files better than CVS.
We let everyone pick their own client (some use the command line, some use the TortiseSVN GUI, some a Java GUI whose name I don’t remember).
It really is worth the effort to change over. I sometimes wish it had the independent networked repository structure of Arch, but I believe that is being worked on.
“Is mantisBT better than bugzilla?”
whats the best subversion GUI for linux?
konqueror has a plugin thats nice
“Is mantisBT better than bugzilla?”
for the prepared to pay, Fogbugz knocks the socks off of everything.
It depends on what you’re looking for.
If you want a nice, clean interface, easy to use bug management system, Mantis is great. It’s easy for your users to be able to report bugs, and it’s easy to setup (just edit config.php to have your database login).
Bugzilla is nice if you want a more featureful bug management system. It is harder to use in my opinion, but it has some features that Mantis should have (and will soon), like better duplicate management, auto-project assisn (although auto-category assign is there), etc. Also note that Bugzilla can be much harder to install. Check out: http://www.bugzilla.org/download.html and see the section about installing on Windows. Unsupported, install this patch from joe hacker, etc. Lame.
I would definitely recommend Mantis for smaller projects, and maybe Bugzilla if getting a lot of bug reports isn’t too important for you. For that comment, see this reference on why Bugzilla scares away end-users trying to report bugs: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixP…
It’s time for me to start using these cool softwares.
I’ve only used CVS for check-outs, mind you 🙂
“it makes source-control incredibly easy, certainly more than SourceSafe”
How can any source control system be easier than VSS ? Check-out, check-in, merge. Plus full integration with Visual Studio. I don’t think any new SC can beat that … to equal, maybe, but beating it ?
How can any source control system be easier than VSS ? Check-out, check-in, merge. Plus full integration with Visual Studio. I don’t think any new SC can beat that … to equal, maybe, but beating it ? ”
have you ever used distributed systems like arch or svn?. You probably have no idea how limited vss is.
How can any source control system be easier than VSS ?
Ease of use depends entirely on scope of use.
Check-out, check-in, merge. Plus full integration with Visual Studio.
Subversion integrates with VS.NET through ArchSVN (http://archsvn.tigris.org/)
I don’t think any new SC can beat that … to equal, maybe, but beating it ?
Have you ever heard of BitKeeper or Perforce?
I first setup a local repository, but after getting the grip of it, I setup a svnserve repository which allows for remote access.
Pretty neat integration with Windows Explorer, straightforward documentation, lovely overall.
But I think I’m gonna pass on Mantis this time. I don’t want to get much involved with PHP at all 🙂
“Have you ever heard of BitKeeper or Perforce?”
Only a little bit, but never got the chance to try those SC under real working environnement. What are the features that make them easier to use than VSS ?
“Only a little bit, but never got the chance to try those SC under real working environnement. What are the features that make them easier to use than VSS ?
distributed systems and change sets
there is a version out with a semi free license. try it out
@Anonymous: have you ever used distributed systems like arch or svn?
SVN by itself is NOT a distributed version control system. If you want distributed functionality, you should use SVK, which uses a Subversion backend: http://svk.elixus.org/
@Bascule: Subversion integrates with VS.NET through ArchSVN
Make that AnkhSVN with URL http://ankhsvn.tigris.org/ and I’ll agree 🙂
“Subversion integrates with VS.NET through ArchSVN (http://archsvn.tigris.org/)”
This link is broken and a quick google brings up nothing – do you have a working link please – I’d really like to check that out.
sorry – just saw the link correction by wald on the 2nd page.
I used to work at Microsoft, and they don’t even use SourceSafe there (at least they didn’t on the teams I worked on).
SourceSafe is easily corrupted, and lacks a lot of capabilities that other tools provide.
“SourceSafe is easily corrupted,”
I personnally never experienced any corruption in 6 years, in two different companies. I may have been a bit lucky, I don’t know, but I won’t say it’s “easily” corrupted. I’m not usually THAT lucky 🙂
“and lacks a lot of capabilities that other tools provide.”
I believe you on the capabilities, but I was more talking about “ease of use”. I just can’t imagine a SC easier to use. More powerful, sure, there’s always room for more features, but easier?
Here’s a small (and probably outdated) list of things wrong with SourceSafe: http://www.highprogrammer.com/alan/windev/sourcesafe.html
However it’s in terms of usability and developer performance that SourceSafe falls down. Firstly the lock-change-unlock mechanism is pretty old, and has not been implemented by a lot of the newer systems. For example, someone may lock something, forget about it, and go on a couple of days holidays. This means the admin has to manually unlock it (this has happened to me a few times).
For another thing, it enforces unnecessary serialisation. With Subversion, CVS, and others that use the same model, two people can work on two different parts of the same file at the same time, without any conflicts or problems.
Also these systems have excellent branch support. You can create a stable branch off your primary development branch and work on both at the same time (i.e. maintaining the current version which adding features for the next version). And whenever you like, you can merge changes relatively easily from the stable branch into the trunk.
I really would encourage people to look at the alternatives that are out there.
“For example, someone may lock something, forget about it, and go on a couple of days holidays. This means the admin has to manually unlock it (this has happened to me a few times). ”
Agree with that. You can forget a check-out if you don’t have the proper habit to periodically check (with the user search).
“For another thing, it enforces unnecessary serialisation. With Subversion, CVS, and others that use the same model, two people can work on two different parts of the same file at the same time, without any conflicts or problems.”
I disagree, as with VSS at my job we constently work many people on the same time on the same file, VSS merging automatically each changes, and without problems. In very tricky cases, when merging isn’t easy to deduct for the tool, VASS will pop up the part of the source that need merging intervention, so we can tell manually how this is merging. It always worked great for me. Even sometimes with three programmers working on a single C file.
“Also these systems have excellent branch support. You can create a stable branch off your primary development branch and work on both at the same time ”
Agree that VSS doesn’t support (AFAIK) double branching of a single project. It probably never pissed me off because I actually never needed to do that for any project I worked on.
For issue tracking, nothing beats Jira ( http://www.atlassian.com/software/jira/ ), IMHO. The ASF seems to agree ( http://nagoya.apache.org/jira/secure/Dashboard.jspa )
Thanks for pointing that out. I am just checking it out.
On how stable subversion is, I have migrated around 15 internal projects from cvs into svn (with the last one being migrated today), besides occasional plugin problems (which cannot be related to subversion itself) I have yet to encounter a single problem in this thing.
Subversion is excellent and rock solid, backup is conistent even during heavy checkins and a breeze, I only can recommend, move as soon as possible from cvs to this thing, cvs feels like a pain compared to svn.
Btw. our repository now currently has a little bit more than one gig and around 850 changeset versions, with around 30 tags in the tag dir.
We have been using SVN since it hit version 1.0 and over the last month exclusively with a slowly phasing out of cvs, which will only be kept for documentation purposes.
a decent SVN client for Linux.
There are various options, but none has the tight integration into the filesystem as TortoiseSVN has on Windows.
First: Rapidsvn has become rather stable in the last few releases, tried it out today, and it works fine.
Second:The native command line svn command might be the best option for now
Third, subclipse works quite well as an eclipse plugin in linux, if you use eclipse anyway and don´t mind to use the workplace also as a local repository mirror subclipse makes a decent client.