Doug Bell will be giving a presentation on scripting Git commands with Perl using the Git::Repository module.
As Bank of America's Perl code got more complex and diverse, we decided to divide our one Perl repository into individual CPAN-style dists. Once that was done, the problem became how do we easily track and release every dist when we need to push new code into production. How do we manage dozens of individual distributions that all rely on each other?
Git submodules are a wonderful solution, but maintenance can become tedious. Luckily, we know Perl. Using Perl, we built a release management system that allowed us to know exactly what has changed, what can be updated, and what is about to be deployed in a release.
At Double Cluepon (my game company), we want to be able to release on a moment's notice. We want to take all the fear out of releasing. Part of this is Continual Integration, part of this is a user-access testing server (anyone who gives us money for our free-to-play game will get access to the UAT server), but the biggest part of this is release and update automation, which we do with Perl and Git::Repository.
I'll be presenting (hopefully) both solutions, along with some information on how git's plumbing commands work.