<p>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.</p>

[{'answer_id': 69503, 'author': '1800 INFORMATION', 'author_id': 3146, 'author_profile': 'https://Stackoverflow.com/users/3146', 'pm_score': 2, 'selected': False, 'text': '<p>Any of the distributed solutions. Git, mercurial etc. My preference would be git.</p>\n'}, {'answer_id': 69504, 'author': 'dawnerd', 'author_id': 69503, 'author_profile': 'https://Stackoverflow.com/users/69503', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://git.or.cz/" rel="nofollow noreferrer">git</a></p>\n\n<p>I have fallen in love with it.</p>\n'}, {'answer_id': 69507, 'author': 'Mike Stone', 'author_id': 122, 'author_profile': 'https://Stackoverflow.com/users/122', 'pm_score': 3, 'selected': False, 'text': '<p>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.</p>\n\n<p>Git is free, created by Linus Torvalds, and used for Linux (among many other projects of course).</p>\n'}, {'answer_id': 69508, 'author': 'Bdoserror', 'author_id': 11026, 'author_profile': 'https://Stackoverflow.com/users/11026', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://www.perforce.com" rel="nofollow noreferrer">Perforce</a> 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 Perforce), but I can\'t find the story online now.</p>\n'}, {'answer_id': 69514, 'author': 'Brian Matthews', 'author_id': 1969, 'author_profile': 'https://Stackoverflow.com/users/1969', 'pm_score': 0, 'selected': False, 'text': "<p>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.</p>\n\n<p>However, it is expensive and it can be hard to find skilled Clearcase administrators.</p>\n"}, {'answer_id': 69515, 'author': 'Nolan Evans', 'author_id': 10877, 'author_profile': 'https://Stackoverflow.com/users/10877', 'pm_score': -1, 'selected': False, 'text': '<p>git - <a href="http://git.or.cz/" rel="nofollow noreferrer">http://git.or.cz/</a> ( i am quite fond of git, great @ branching and distributed development) - <a href="http://github.com/" rel="nofollow noreferrer">http://github.com/</a> is a great working example.</p>\n'}, {'answer_id': 69516, 'author': 'Yann Ramin', 'author_id': 9167, 'author_profile': 'https://Stackoverflow.com/users/9167', 'pm_score': -1, 'selected': False, 'text': '<p><a href="http://git.or.cz" rel="nofollow noreferrer">Git</a>, Mercurial, Bazaar, Darcs</p>\n'}, {'answer_id': 69520, 'author': 'mike511', 'author_id': 9593, 'author_profile': 'https://Stackoverflow.com/users/9593', 'pm_score': 0, 'selected': False, 'text': "<p>Perforce is free for up to 2 users.</p>\n\n<p>I'm not 100% certain about what you expect can/should be automated,\nbut perforce is very high quality.  You can easily create and maintain\nbranches, and you can merge easily.  It's quite easy to cherry pick\nspecific changes you made in one branch, and merge them into another\nbranch with a high degree of automation.</p>\n"}, {'answer_id': 69522, 'author': 'user11087', 'author_id': 11087, 'author_profile': 'https://Stackoverflow.com/users/11087', 'pm_score': 2, 'selected': False, 'text': '<p>Did you ever ask yourself why you have so many branch/merge operations?  Is there a way to simplify your development process?</p>\n\n<p>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.</p>\n'}, {'answer_id': 69531, 'author': 'Dr8k', 'author_id': 6014, 'author_profile': 'https://Stackoverflow.com/users/6014', 'pm_score': -1, 'selected': False, 'text': "<p>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.</p>\n\n<p><strong>Note:</strong> I wouldn't bother with this if you don't develop primarily in Visual Studio.</p>\n"}, {'answer_id': 69555, 'author': 'Joe Barone', 'author_id': 3452, 'author_profile': 'https://Stackoverflow.com/users/3452', 'pm_score': 5, 'selected': False, 'text': "<p>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.</p>\n"}, {'answer_id': 69581, 'author': 'DarenW', 'author_id': 10468, 'author_profile': 'https://Stackoverflow.com/users/10468', 'pm_score': 0, 'selected': False, 'text': '<p>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.  <a href="http://better-scm.berlios.de/alternatives/" rel="nofollow noreferrer">http://better-scm.berlios.de/alternatives/</a></p>\n'}, {'answer_id': 69597, 'author': 'DarenW', 'author_id': 10468, 'author_profile': 'https://Stackoverflow.com/users/10468', 'pm_score': -1, 'selected': False, 'text': '<p>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: <a href="http://www.geocities.com/~karlvonl/blog/2006/03/daddy-needs-new-subversion-gui.html" rel="nofollow noreferrer">http://www.geocities.com/~karlvonl/blog/2006/03/daddy-needs-new-subversion-gui.html</a></p>\n'}, {'answer_id': 70006, 'author': 'user11211', 'author_id': 11211, 'author_profile': 'https://Stackoverflow.com/users/11211', 'pm_score': -1, 'selected': False, 'text': '<p>Bazaar, by the creators of Ubuntu.</p>\n\n<p><a href="http://bazaar-vcs.org/" rel="nofollow noreferrer">http://bazaar-vcs.org/</a></p>\n\n<p>Why Choose Bazaar?</p>\n\n<p><a href="http://bazaar-vcs.org/BzrWhy" rel="nofollow noreferrer">http://bazaar-vcs.org/BzrWhy</a></p>\n'}, {'answer_id': 70042, 'author': 'Marcin Gil', 'author_id': 5731, 'author_profile': 'https://Stackoverflow.com/users/5731', 'pm_score': 3, 'selected': False, 'text': '<p>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 ;)</p>\n\n<p>So I\'ve started using git + svn. Meaning: I have svn checkout and in this directory I\'ve started git. Now I have <strong>fast</strong> 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).</p>\n\n<p>Looks like a lot of operations but they are fast. I mean really fast. And give me the flexibility I need (see <a href="http://dentharg.wordpress.com/2008/04/30/git-as-a-branch-container-and-visual-studio/" rel="nofollow noreferrer">my article on git + visual studio</a>).</p>\n\n<p>I think Bazaar can do similar things and <strong>might</strong> be better at one thing: it can easily support <a href="http://bazaar-vcs.org/Workflows#head-22b1dac636e54e501e9b5a0a235f21bb686b80ac" rel="nofollow noreferrer">non-distributed, central-repository based development</a>.</p>\n'}, {'answer_id': 72806, 'author': 'Jim Puls', 'author_id': 6010, 'author_profile': 'https://Stackoverflow.com/users/6010', 'pm_score': 1, 'selected': False, 'text': '<p>One thing that hasn\'t been mentioned yet is that it\'s perfectly possible to use git in the <a href="http://git.or.cz/course/svn.html" rel="nofollow noreferrer">same centralized manner that you\'re used to with Subversion</a>. It really is an outstanding piece of software.</p>\n'}, {'answer_id': 79020, 'author': 'Dr8k', 'author_id': 6014, 'author_profile': 'https://Stackoverflow.com/users/6014', 'pm_score': 1, 'selected': False, 'text': '<p>Just adding to DarenW - For windows there is a really nice Subversion server product that is free and makes life a dream - <a href="http://www.visualsvn.com/server/" rel="nofollow noreferrer">VisualSVN Server</a>. This packages the latest Subversion build into a single MSI installer and adds in a very useful management console. </p>\n'}, {'answer_id': 79158, 'author': 'Mike H', 'author_id': 13858, 'author_profile': 'https://Stackoverflow.com/users/13858', 'pm_score': -1, 'selected': False, 'text': "<p>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.</p>\n"}, {'answer_id': 149187, 'author': 'Kiley Hykawy', 'author_id': 22727, 'author_profile': 'https://Stackoverflow.com/users/22727', 'pm_score': 2, 'selected': False, 'text': '<p>I came from a <a href="http://www.perforce.com" rel="nofollow noreferrer">Perforce</a> 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 :).</p>\n\n<p>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.</p>\n\n<p>So, I\'m leaning towards a distributed VCS, specifically Bazaar:</p>\n\n<ol>\n<li>Branching and merging work real well and in the ways I expect</li>\n<li>It can be used with a <a href="http://bazaar-vcs.org/Workflows#head-22b1dac636e54e501e9b5a0a235f21bb686b80ac" rel="nofollow noreferrer">centralized workflow</a></li>\n<li><a href="http://bazaar-vcs.org/BzrForeignBranches/Subversion" rel="nofollow noreferrer">Supports Subversion branches, working copies, and repositories</a>. This means my team can use Bazaar within a larger organization that uses Subversion and still share code with them.</li>\n</ol>\n'}, {'answer_id': 187589, 'author': 'Chris Boran', 'author_id': 25660, 'author_profile': 'https://Stackoverflow.com/users/25660', 'pm_score': 2, 'selected': False, 'text': '<p>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. </p>\n'}, {'answer_id': 1041409, 'author': 'pablo', 'author_id': 72456, 'author_profile': 'https://Stackoverflow.com/users/72456', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://www.plasticscm.com" rel="nofollow noreferrer">Plastic SCM</a> is all about branching and merging... made easy. Check its GUI and compare with the other alternatives.</p>\n'}, {'answer_id': 60791348, 'author': 'bahrep', 'author_id': 761095, 'author_profile': 'https://Stackoverflow.com/users/761095', 'pm_score': 0, 'selected': False, 'text': '<p>Branching and merging have been dramatically improved in Subversion, and the problems you describe were solved a long time ago. For example, Subversion supports merge tracking for more than 10 years.</p>\n\n<ul>\n<li>Modern Subversion versions support merge tracking via <a href="https://www.visualsvn.com/support/svnbook/branchmerge/advanced/#svn.branchmerge.advanced.finalword" rel="nofollow noreferrer"><code>svn:mergeinfo</code></a>. You do not need to track merges manually.</li>\n<li>Subversion supports <a href="http://svnbook.red-bean.com/en/1.8/svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.reintegrate" rel="nofollow noreferrer">automatic reintegration merges</a> starting with version 1.8.x.</li>\n<li>Subversion supports interactive conflict resolution for textual conflicts. Starting with version 1.10.x Subversion supports <strong><a href="https://subversion.apache.org/docs/release-notes/1.10.html#conflict-resolver" rel="nofollow noreferrer">interactive conflict resolution for tree conflicts</a></strong>.</li>\n</ul>\n\n<blockquote>\n  <p>I\'m sick and tired of manually tracking my branches and merges across\n  my repository! It\'s too error prone. In a world where everyone seems\n  to get the idea of reducing duplication and automating everything,\n  subversion branching/merging feels like it\'s left over from the 80\'s.</p>\n</blockquote>\n\n<p><strong>These problems were resolved in Subversion 1.5.0 that was released on 19 Jun 2008.</strong> The current version is 1.13.x.</p>\n'}]
['https://Stackoverflow.com/questions/69497', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/10945/']