Managing git submodules with git.rake

Hey all,

If you’re like me and use git submodules heavily (I vendor everything,
and every plugin is a submodule), you might like to hear about code
published this morning to make it easier to manage multiple git
submodules in a shared-server environment.

It’s imaginatively titled ‘git-rake’, and it does Good Things like:

  • aggregates submodule commit logs into the superproject commit log
  • abbreviates output for git-status and other common commands (filters
    out what you don’t need to see)
  • ensures you don’t publish references to local-only submodule commits
    (which, if you haven’t done it, is painful)
  • intelligently synchronizes all submodules with the shared repo
    server (no unneeded network requests)
  • allows arbitrary commands to be iterated over all submodules
  • a few other nice sanity checks and commands

If you think the rake tasks might be useful, or you’re wondering why
dealing with many submodules can be a pain, check out the announcement
post:
Flavor-iffic: Managing Git Submodules With git.rake

and, of course, the github project:
http://github.com/mdalessio/git-rake/tree

We've been using it internally at my company, Pharos Enterprise Intelligence (http://www.pharos-ei.com/), for the last 5 months and it's been a huge timesaver for us (each of our client projects have 14+ submodules, so that's motivation for you). We've been looking for opportunities to open-source some of our code, and hey, this is where we're starting.

Comments welcome.

-m