views:

2409

answers:

21

I'm sick and tired of manually tracking my branches and merges across my repository! It's too error prone. In a world where everyone seems to get the idea of reducing duplication and automating everything, subversion branching/merging feels like it's left over from the 80's. What is a good alternative to subversion that has excellent branching and merging support without adding the complexity of a distributed SCM paradigm? Ideally it would be free, but if I have to shell out some cash I might be inclined if it's good enough.

+3  A: 

Any of the distributed solutions. Git, mercurial etc. My preference would be git.

1800 INFORMATION
+2  A: 

git

I have fallen in love with it.

dawnerd
+6  A: 

Have you looked into distributed version control, such as Git? Each "checkout" is essentially a branch... it's a fairly different way of thinking about source control.

Git is free, created by Linus Torvalds, and used for Linux (among many other projects of course).

Mike Stone
He said non-distributed. :)
JonathanMueller
This answer was posted before the original question was edited
Luke
+6  A: 

Perforce is an excellent tool, but beyond 2 users it will cost you as it's aimed at professionals. We use it with a pretty heavy branching scheme (1 branch per feature during main development) and it works well. Kind of like the "Spider web" branching used by Microsoft (which used a modified older version of Perfoce), but I can't find the story online now.

Bdoserror
Perforce tools are free (P4V) but the user licenses are expensive!
Ady Romantika
+1  A: 

I've used Clearcase a lot. As long as you are doing your merges frequently it can be pretty effortless and it is also possible to have merge jobs running in the background. You are required to intervene if there is a merge conflict.

However, it is expensive and it can be hard to find skilled Clearcase administrators.

bmatthews68
No offense to you personally, but I HATE ClearCase! We used it at my last company, and SVN was a breath of fresh air! I can't stand the checkout/modify/checkin methodology, and the lack of atomic checkins SUCKS!
Mike Stone
I actually prefer the checkout/modify/checkin approach, But I will admit that ClearCase has its problems. Performance over a WAN or VPN is terrible because they use a very noisy protocol. It has been address in CCRC and I believe that feature will make into the main product in the near future.
bmatthews68
A: 

git - http://git.or.cz/ ( i am quite fond of git, great @ branching and distributed development) - http://github.com/ is a great working example.

Nolan Evans
A: 

Git, Mercurial, Bazaar, Darcs

Yann Ramin
+1  A: 

Perforce is free for up to 2 users.

I'm not 100% certain about what you expect can/should be automated, but perforce is very high quality. You can easily create and maintain branches, and you can merge easily. It's quite easy to cherry pick specific changes you made in one branch, and merge them into another branch with a high degree of automation.

mike511
+2  A: 

Did you ever ask yourself why you have so many branch/merge operations? Is there a way to simplify your development process?

Subversion, IMHO, is a good application of the KISS (Keep it simple, stupid) principle. Translation: In my experience you will get a far greater productivity boost from streamlining your development process than from getting a more complex tool.

This might work for some developer roles, but not for all. There might be developers on the team, who are often asked to help or try something out. In Subversion there is no reasonable way to keep your workspace clean. Using git you can just stash your changes away, or start a new local branch/issue
jrudolph
A: 

I'm probably going to be flamed for this, but if you aren't out for a free product MS Team Foundation Server is worth a look. Unlike other MS products that will remain nameless the source control is solid and fully functional. Combine that with the IDE integration, automated build / test engine and work management functionality and it is pretty awesome. Of course, it is aimed at companies and priced to suit.

Note: I wouldn't bother with this if you don't develop primarily in Visual Studio.

Dr8k
+23  A: 

Have you upgraded to Subversion 1.5? It includes automated merge tracking. This may address your issue. It sounds like you're already familiar with the tool itself and it's free. So, if you upgrade your current solution to 1.5 you'll have almost no learning curve and zero cost - plus you won't have to go through the pain of porting your existing code to a new source code control system.

Joe Barone
A: 

This is framed in terms of alternatives to CVS, rather than to SVN, but no matter - it lists several alternatives, including other non-distributed ones. http://better-scm.berlios.de/alternatives/

DarenW
A: 

While alternatives to subversion may be nice, subversion with lipstick may do just fine. Here's a review of front ends for subversion that run on Macs: http://www.geocities.com/~karlvonl/blog/2006/03/daddy-needs-new-subversion-gui.html

DarenW
A: 

Bazaar, by the creators of Ubuntu.

http://bazaar-vcs.org/

Why Choose Bazaar?

http://bazaar-vcs.org/BzrWhy

there is also the possibility to use bazaar together with subversion have a look at http://bazaar-vcs.org/BzrForeignBranches/Subversion
Mauli
+4  A: 

I was also sick of these limitations in old versions of Subversion. Yet no one else in my company uses branching and merging. Each of them, when trying a new feature, got another checkout, hack-hack-hack and got rid of it if was bad - commit when good. Just sometimes they commited something bad ;)

So I've started using git + svn. Meaning: I have svn checkout and in this directory I've started git. Now I have fast merging and branching and I do not interrupt any other. If I need to try new feature X, just branch/checkout/hack-hack. If I need now to take some crucial update from our SVN repo: git stash, git checkout master, svn update, git commit -a, git checkout feature-X, git rebase, git stash apply (all this because git-svn does not work on Windows).

Looks like a lot of operations but they are fast. I mean really fast. And give me the flexibility I need (see my article on git + visual studio).

I think Bazaar can do similar things and might be better at one thing: it can easily support non-distributed, central-repository based development.

Marcin Gil
+1  A: 

One thing that hasn't been mentioned yet is that it's perfectly possible to use git in the same centralized manner that you're used to with Subversion. It really is an outstanding piece of software.

Jim Puls
A: 

Just adding to DarenW - For windows there is a really nice Subversion server product that is free and makes life a dream - VisualSVN Server. This packages the latest Subversion build into a single MSI installer and adds in a very useful management console.

Dr8k
A: 

What do you think is complex about DVCS like GIT? It's simpler in some ways: no client/server, no repo in one place with working dir in another place, user management is not built-in (use ssh if you need it). As Jim Puls said, you can use DVCS like non-distributed if you want. I use GIT for one-man projects, even ones that last only a few weeks. There's nothing exactly like Tortoise, but gitk, qgit, and git-gui are better for those functions than I've seen with SVN. I used to prefer guis, but now I'm quite fond of the git command line - but check out easygit for some improvents.

Mike H
+3  A: 

I came from a Perforce shop into a Subversion shop and missed the great branching and merging support that Perforce has. So, Perforce would be my first recommendation but then it costs money :).

Subversion 1.5 looks promising for it's merge tracking support but it is marked as foundational and doesn't look like it will have a minimal of merge support that I am willing to accept (i.e. Perforce-like) any time soon.

So, I'm leaning towards a distributed VCS, specifically Bazaar:

  1. Branching and merging work real well and in the ways I expect
  2. It can be used with a centralized workflow
  3. Supports Subversion branches, working copies, and repositories. This means my team can use Bazaar within a larger organization that uses Subversion and still share code with them.
Kiley Hykawy
+3  A: 

You should check out Accurev. It does point and click creation of new streams (like branches, but better IMO), and the whole concept of code flowing through streams makes merging much less painful and frequent a task. It is very simple to administer, has a 3-user free license, and has great visualization tools built in.

Chris Boran
+1 We don't use AccuRev in our shop, but I wish we did. The stream-based paradigm is hard to grok at first, but once I got it, I suddenly saw all the things I can't do with our current system :(
Benjol
A: 

Plastic SCM is all about branching and merging... made easy. Check its GUI and compare with the other alternatives.

pablo