From: Dun Peal Date: Thu, 16 Dec 2010 16:54:11 GMT Subject: Correctly detecting modified paths in merge commits? Message-ID: Hi. We wrote a post-receive hook that alerts users (via email) when specific paths are modified by their peers. The implementation is pretty simple: whenever a new commit is made, we ask git for the full list of files modified by that commit: git diff --name-only ^! This works well for regular commits, but breaks for merge commits. For example, suppose we have the following basic merge scenario: B / \ A D \ / C Root A was branched to B and C, then merged into commit D. Problem is, the diff for D^! will include all the changes introduced by C. One obvious solution is to simply ignore merge commits, by parsing `git cat-file commit D` and discarding all commits with parent count > 1. But merge commits may actually contain legitimate modified files if there were any conflict resolutions. So what's the best solution for this problem, oh wise Git wizards? Thanks, D.