git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Correctly detecting modified paths in merge commits?
@ 2010-12-16 16:54 Dun Peal
  2010-12-16 18:33 ` Jakub Narebski
  0 siblings, 1 reply; 2+ messages in thread
From: Dun Peal @ 2010-12-16 16:54 UTC (permalink / raw)
  To: Git ML

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 <COMMIT HASH>^!

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.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-12-16 18:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-16 16:54 Correctly detecting modified paths in merge commits? Dun Peal
2010-12-16 18:33 ` Jakub Narebski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).