Source code management

KDE recently moved to Subversion, and generated a lot of publicity. The GNOME project has been talking about SCM's for a long time, with the general consensus that we need to start some sort of migration plan away from CVS.

The GNOME board has invited the GNOME sysadmin team to investigate what would be involved in migrating GNOME CVS to Subversion. Progress notes can now be found on the Subversion page.

Goals

What are the specific things we are trying to achieve here? Migration away from CVS because "it's the popular thing to do" would be silly. (OwenTaylor)

Staying with CVS because it is what we have always used is also silly. Pretty much everyone agrees that CVS is fundamentally broken --- the only thing that makes it even vaguely tolerable is that we all know the ways in which it is broken, and are used to having to work around it. (JonTrowbridge)

Migration away from CVS gives a few major advantages - not least is directory & file moves & copies. That alone is worth moving away from CVS. Module permissions (and even branch permissions) is another big reason to move. It's also an opportunity to clean up CVS, and archive dead/unused modules. (DaveNeary)

My pet advantage: Ability to do diffs offline. Big bonus. Saves bandwidth/processor on the server(s), and is especially handy for our less-reliably connected developers (i.e. me!). Also, from the recent list thread, it was noted that revision numbers associated with a commit make tracking patches a lot easier. (RossGolder)

Options

Subversion should slide into the GNOME way of working with little disruption. It is now widely available, cross-platform, and does things in a similar way to CVS, but has many advantages.

There's a very interesting mailing list thread on how Mono moved from CVS to Subversion: http://svn.haxx.se/dev/archive-2004-11/0745.shtml

Arch/bazaar and other decentralised systems seem to me to move away from the way GNOME works now. Not saying they're bad options, just that they would disrupt things that Subversion wouldn't, and would take more time to get used to.

One massive advantage to a distributed system over a centralised system like CVS or Subversion is that anybody may create their own branches and commit their work. There's no requirement to become a developer or part of the "in crowd" and get commit-access to the central repository. There's also no danger of somebody breaking the official repository in their own branches.

This would massively help to alleviate the problem where many people feel they can't contribute to GNOME because they don't have commit rights and aren't an "official" developer.

It seems that Ubuntu have set up an arch mirror of many (not yet all) of the GNOME CVS modules here: http://arch.ubuntu.com/gnome@arch.ubuntu.com/

How do we do it?

Moved the subsequent notes to Subversion...

GUADEC/2005/FreeformSessions/SourceCodeManagement (last edited 2013-08-09 00:40:21 by WilliamJonMcCann)