So after my last post, I decided I would try to just setup commit emails on our git repository. I found a project called git-commit-notifier. It‘s a Ruby project that produces decent looking diffs that are colored.
Ran into 2 huge things: 1. because we were using https and webdav, the hooks were never getting triggered. So if you are out there thinking about which protocol to use in Git and your repo is not open to the world, don‘t pick https. It‘s also slow as molasses. So of course, we had to waste a ton of time getting everyone setup with ssh. 2. the commit notifier project proves that you can get really poor quality code in any language. Ruby‘s whole putsch into the marketplace was ‘we write great code‘ and ‘java is a confusing mess.‘ I would invite any serious programmer to look at this codebase. It‘s not object oriented. Matter of fact, I‘ve seen Perl code that is better than this stuff.
We spent hours trying to figure out why if we committed to master, the email would go, using the smtp configuration we had setup, but if we committed to develop (branch) it would attempt to send the email through sendmail! After running around in worhmhole-ridden rot for hours, we decided to consider a new workflow. Found this story pattern that looked kind of interesting, better than the one we had adopted from the Pro Git book.
Which brought on the coup de gras in all this: because you are never doing anything but merging to master, the push diff ends up being pretty useless.
Integrated tools that are tested and documented by the providers are such horrible hindrances to freedom..