[plt-dev] One e-mail per commit?

From: Eli Barzilay (eli at barzilay.org)
Date: Mon May 17 20:59:55 EDT 2010

On May 17, Ryan Culpepper wrote:
> On 05/17/2010 11:36 AM, Eli Barzilay wrote:
> > On May 17, Ryan Culpepper wrote:
> >>
> >> My ideal form of notification would tell me the committer(s), the
> >> part(s) of the tree where activity was taking place, the commit
> >> messages, and a link to the full diff if I want to examine
> >> it.... all in the first twenty or so lines of the message. (<  20
> >> lines for a typical push; pushes with many commits would need more
> >> lines, of course). I'm disinclined to scroll through long
> >> auto-generated emails, so I probably only catch the first commit
> >> message in the current format.
> >
> > The emails should be pretty minimal in length now -- if you remember,
> > I started with a summary of files changed, but that made it impossible
> > to know what a commit refers to.  At some point in the future I think
> > that I can add some "alert" lines if someone else committed changes to
> > files that you're responsible for.
> As an example, the commit summaries in the email for push 20251
> don't fit in my message window. There are three commits, and only
> the first two fit. The list of all files changed takes up a lot of
> space. How about replacing the list with the closest common
> ancestor? Here's a mockup:
> [...]

There's something that does something similar to this, which looks
like it's reasonable to put it at the top of these emails -- here's
Sam's push:

  $ git diff --dirstat b7a20594ef..0d1d61c725
   100.0% collects/tests/typed-scheme/succeed/

your recent push:

  $ git diff --dirstat 535dc73fad..a25996b4b8
    47.6% collects/rackunit/private/gui/
    52.3% collects/syntax/private/stxparse/

But it's not always working too well -- here's the push where I
renamed racunit -- note that the two names appear:

  $ git diff --dirstat 5b38155e..7b14a1f5
    12.9% collects/rackunit/private/gui/
     9.8% collects/rackunit/private/
     9.3% collects/rackunit/scribblings/
    12.9% collects/racunit/private/gui/
     9.8% collects/racunit/private/
     9.3% collects/racunit/scribblings/
    12.3% collects/tests/rackunit/
    12.3% collects/tests/racunit/
    10.8% collects/

Another thing that might be appealing for Mike in identifying
interesting pushes is summarizing that output on the subject like,
which is something that the subversion notifications had (IIRC).
Maybe also show the commit message's first line if there's only one
commit.  But all of this (except for the simple use of `--dirstat') is
getting way too heavy for a bash script, so these kinds of games will
need to wait for a racket rewrite of that script.  (BTW, another thing
that further complicates it: the same script works for branches and
for private repositories too, and it'll need to do different things in
these cases -- hopefully in a configurable way.)

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.