Lowering barriers to upstream contribution: A simple git-subtree workflow for managing Drupal modules

Keeping track of the source history for a large Drupal site is hard. With core, contrib modules, themes, custom modules, and perhaps even a few patches to contrib modules, it quickly becomes difficult to stay up to date with upstream releases without staying up all night.

And until recently, those of us who manage our sites in git had just two options: download tarballs and git add or use git submodule (or the corresponding drush utilities). The first does a great job of copying sites from one place to another -- do a “git clone” and you know you have all the code. But applying or creating patches against contrib modules is hard, and upgrading is no easier. The second makes it easy to work with upstream code, but at the expense of extra complexity in your daily workflow.

The little-known git subtree command promises to give us the best of both worlds: simple workflows both at home and in the issue queues. This talk will describe our experiences with this new technique in several medium-to-large projects. I will present one or two case studies along with simple and repeatable examples for adding new modules or upgrading existing ones, applying patches downloaded from an issue queue, and generating patches ready for contributing back upstream.

Schedule info
Status: 
Proposed
Session Info
Speaker(s): 
Track: 
DevOps
Experience level: 
Intermediate

Comments

I've been looking for something like this for a while - sounds interesting.

I have experienced this problem, and I'll be attending this talk. I think anything we can do to ease contributing code upstream is good.