Friday, November 27, 2009

Things I don't like about Git

I recently evaluated Git again for possible use in SuperTux, still some things I don't really like about it:
  • lack of sparse/narrow/shallow checkout, this means initial checkout will be 200MB instead of 100MB
  • no free hoster that allows >1GB repositories (havn't checked all, but those I did came out way short)
  • some free hosters that might allow >1GB repositories don't allow having multiple repositories
  • git submodule doesn't seem to be quite ready to replace our trunk/supertux, trunk/supertux-editor, trunk/media/, ... layout as it for example doesn't support automatic tracking of HEAD from the remote repositories, it also feels rather hacky and not properly integrated into git
  • lack of metadata versioning, if you delete a branch in git that you haven't merged, then its gone after the next gc/repack (+ two weeks time limit it seems), in SVN on the other side you can checkout the way the tree was at a specific date, its impossible to lose history unless you hack the repository
  • handling of subdirectories, in SVN its more comfy to just hack around in a subdirectory without bothing whats above it, in Git you always act against the whole repo instead of just the subdirectory, minor usability quirk, still a bit annoying
So for the time being I think I'll stay with SVN.


Serjn said...

Well, what about other DVCESes? Mercurial and Bazaar mainly. Other than that, why do you need so much space? Media and other binary content doesn't do so well under git (not so sure if thats still the case, but..). You can have an art svn, and a code git. Or even better, help out on XUS, and get infinite storage via P2P git file hosting

Grumbel said...

Haven't looked that much into Mercurial, but from what I understand it has mostly the same problems as git. Currently looking into Bazaar, which looks interesting and a bit closer to what we need as its supports lightweight checkouts for example.