I just can't help myself, whenever I get an idea for a Drupal module stuck in my head, especially one that makes so much sense, I just have to write it.
Drupal is using CVS for version controlling core and contrib modules. CVS has diffing options, but it becomes annoying when you try adding or deleting new files. Here's an example of how to use git to patch a contrib module - Organic groups.