Reviewing for Git switch

Daniel Silverstone dsilvers at
Mon Jun 4 17:33:24 BST 2012


I have been reviewing things for the git switchover.  The sooner people get
their SSH keys to me, the sooner we can test for interesting hosting hiccoughs
like the one chris_y showed up.

If you think there's a hosting feature you'd like, visit Gitano's trello
board[1] and add a card if there's not one already.  If you need to be invited
to the board, let me know.  I don't know how public access works on Trello.

There's two niggles I'm trying to resolve ready for the switch.

The first is ignores.  You may have noticed a spate of .gitignore adds
recently.  They're me trying to get all the appropriate ignores sorted before
the switch for at least the core components.  I've also added git testament
support into the SVN.

There's one big issue we need to decide upon though.  That of 'svn:externals'.

Git has its own equivalent of svn:externals called 'submodules'.  We use
externals for one main purpose (bringing in the shared build infrastructure in
all the libraries).

Currently we convert tools/ as a single repository (so buried inside it is the

I see three possible solutions to the issue.

1. We abandon externals.
   - Mandate a checkout of tools/ alongside lib<foo> (shared among all libs)
   - Every project using an external to the build system instead gains
     A symbolic link (build/makefiles) to ../../tools/buildsystem/makefiles
   - The tools/ tree needs that doing to all its sub-tools.

2. We convert tools/ to a set of repos, one for each subsection
   - Every project currently using an external changes to a git submodule
     referring to that new repository

3. We convert tools/ to a set of repos, one for each subsection (2)
   - Every project currently using an external changes to a subtree merge.
     Simpler than an external to clone, more complex to change/update.

My personal preference is for 1.  It would also mean we could start to load
tools/ up with loads of handy utilities etc for developing with NetSurf.  The
checkout of tools/ is a tad over 1MB currently, including the git history for
it.  By comparison, a checkout of nstools is 2.2M from SVN and the current
checkout set I have here for SVN netsurf carries 1.4M of build/makefiles/

I have successfully (by dint of prototyping point 1) build a NetSurf/GTK from
the temporary git conversions.


Daniel Silverstone             
PGP mail accepted and encouraged.            Key Id: 3CCE BABE 206C 3B69

More information about the netsurf-dev mailing list