SVN vs. git, status update

Werner Almesberger werner at openmoko.org
Tue Mar 11 08:53:30 CET 2008


A while ago, Andy and I had some discussion about whether we should
continue to use SVN and quilt or switch to git. SVN and quilt have
served us well in the past, but they have their quirks, and git is
nowadays considered the standard SCM for kernel development.

Back then, I suggested to postpone this discussion until we've sent
GTA02 off to the factory, since it would be too risky to change
repositories at a time when everyone is in release crunch.

Well, GTA02 isn't quite done yet (but coming along nicely - seems
that we're fixing more bugs than finding new ones these days, which
is very unusual for OpenMoko ;-), but we had the opportunity to
discuss this issue face to face in Taipei in the last weeks.

The conclusions were these: there's little that speaks against using
git as repository per se. In fact, it should be better than SVN in
many regards.

The big unknown is how we can use git and still produce sequential
patches, i.e., the sort that goes something like

[PATCH 0/2] OpenMoko foo, overview
[PATCH 1/2] OpenMoko foo, platform code
[PATCH 2/2] OpenMoko foo, GTA03-specific

We need this for upstream merging. In SVN+quilt, these patches are
in fact what resides in the repository, but there's no trivial way
to extract such patches from a git repository if we have overlapping
changes.

Since we couldn't find an immediate answer, we decided on the
following course of action:

- for now, change nothing, i.e., we keep SVN+quilt and git in parallel

- once we're good for MP, I'll take a few weeks off. Matt has
  volunteered to act as caretaker for the SVN+quilt repository during
  my absence. (Thanks, Matt !)

- we keep on thinking about a good way to synthesize such patches from
  a git repository, including any specific workflow this may need

- when I return, we migrate the current patches from SVN into git (in
  applied form, of course, not as patch files)

- from then on, we proceed with git, using a workflow that allows us
  to synthesize patches as we need

- around that time, we also start cleaning up patches and pushing
  them upstream. Details of how we approach this are still under
  discussion.

I already have some ideas for how we can synthesize those patches.
Andy, I think you'll like them :) Very light on the workflow. I'll
write about them in a bit.

- Werner




More information about the openmoko-kernel mailing list