[cairo] Use of git

Malcolm Tredinnick malcolm at pointy-stick.com
Sun Jan 13 16:42:19 PST 2008

On Sat, 2008-01-12 at 11:36 +0200, Kalle Vahlman wrote:
> 2008/1/12, Carl Worth <cworth at cworth.org>:
> > It does mean that an initial clone takes *forever*, (yes, svn is
> > _really_ slow), but I do get all of the benefits of offline history
> > exploration once that's done. And I can even use familiar git UI for
> > creating local branches and local commits.
> Fortunately you can limit the revisions you fetch initially, so just
> to create a patch against GTK+ trunk you don't have to fetch the whole
> 10 years of history, you can start from a bit more recent revision.

It is pretty cool to have an offline copy of the entire revision history
for a project, though. Being able to read the really old reasons for
something whilst offline has proven invaluable. Space isn't a huge
problem, either, since git's storage requirements (after running "git
gc" periodically) are tiny compared to subversion's.

> > I've never attempted to use the support it has for pushing such
> > git-created commits back through svn, but that's intended to be
> > possible.
> It works fine as long as we are talking about pushing commits from
> master to trunk, but I hear people have significant problems when
> branches are involved in either end. It really functions best when
> used simply as a local way to create patches I think.

I use it quite happily on another project where I'm one of the
maintainers for multiple subversion branches and I handle them all
through one git repository locally. The only real difficulty in this are
is that merging between branches involves two slight levels of pain:
firstly, you have to really do a squash merge on the git side so that
thecommit history stays linear (a subversion requirement). That's not
too hard to manage, though (and there are scripts around that mostly
work). Secondly, git has not way of transparently understanding
subversion branch merges, so it doesn't pick up common history very
easily. You can do manual grafts, but it's pretty low-level plumbing and
not as easy as it could be. Still, work on git-svn is pretty active
upstream, so all things come to those who wait (or contribute).


On the other hand, you have different fingers. 

More information about the cairo mailing list