Push emails for Git



So, trying to plan out a out what mails we want sent when changes get
pushed to git.gnome.org. What's below is a rough proposal for the
subject line and body for pretty much each possible of "ref" (branch or
tag) update that might be made.

Each time you do 'git push' you can update multipe refs, so a single
push might end out multiple emails.

Would appreciate detailed feedback about the below, and how it would 
fit into your usage of [svn-]commits-list.

- Owen


Single commit to master
=======================

Subject: [gnome-shell] Bug 570579: Redo the layout of overlay components

<output of git show -p --stat>


The idea here is to keep the common case of a single commit to master as clean
as possible.

Single commit to another branch
===============================

Subject: [gnome-shell/gnome-2-28] Bug 570579: Redo the layout of overlay components

<output of git show -p --stat>


The only difference from the commit to master is the subject line. Should there be
something in the body as well?

Multiple commits
================

Subject: [gnome-shell] (3 commits) Merge branch 'statusmenu'...

Summary of changes:

 b7a0a5e... Merge branch 'statusmenu'
 de1c150... Add librsvg-devel to the OpenSuSE dependency list

<output of git show -p --stat for each commit>


The detailed 'git show' output would be omitted for any commit "previously
in the repository". "previously in the repository" is actually impossible
to figure out 100% reliably, but you can do a reasonable job as long
as you aren't concerned that someone determined could fake it out.

Another possibility is that we want to send out separate mails for 
each commit in a case like the above, and never have multiple patches
combined into a single mail. So, you might have mails 

 Subject: [gnome-shell] [1/3] Add librsvg-devel to the OpenSuSE dependency list
 ...
 Subject: [gnome-shell] [3/3] Merge branch 'statusmenu'...

Though I'm not quite sure how to properly represent the relationship between
the commits in the mails.

Branch creation
================

Subject: [gnome-shell] Created branch statusmenu

Summary of new commits:

 2d3988c... Bug 570579: Redo the layout of overlay components
 de1c150... Add librsvg-devel to the OpenSuSE dependency list

<output of git show -p --stat for each commit>

Branch deletion
===============

Subject: [gnome-shell] Deleted branch statusmenu

The branch 'statusmenu' was deleted.

Non fast-forward update to branch
=================================

Subject: [gnome-shell] Non-fast-forward updated to branch master

The branch 'master' was changed in a way that was not a fast-forward update.
This may cause problems for people pulling from the branch. For more information,
please see:

 http://live.gnome.org/GitNonFastForward

Commits removed from the branch:

 2d3988c... Bug 570579: Redo the layout of overlay components
 de1c150... Add librsvg-devel to the OpenSuSE dependency list

Commits added to the branch:

 85dae56... Bug 571203 - Handle spaces in overlay search

<output of git show -p --stat for each new commit>


Maybe we just hard forbid this in all cases, but it might make sense
to allow as a (sysadmin-only?) option in recovery-from-stupidity
cases. If someone acccidentally merges a huge experimental branch to
master and pushes it, it's probably better to cause a bit of temporary
pain for people who pulled the bad version.

Annotated tag created
=====================

Subject: [gnome-shell] Created tag GNOME_SHELL_2_28_0

The tag 'GNOME_SHELL_2_28_0' was created.

Tagger: Owen W. Taylor <otaylor fishsoup net>
Date: Thu Jan 29 18:36:24 2009 -0500

    Release gnome-shell-2.28

Changes since the last tag 'GNOME-2.25.90':

 2d3988c... Bug 570579: Redo the layout of overlay components
 de1c150... Add librsvg-devel to the OpenSuSE dependency list
 ...

Annotated tag updated
=====================

Subject: [gnome-shell] Created tag GNOME_SHELL_2_28_0

The tag 'GNOME_SHELL_2_28_0' was replaced with a new tag. It previously
pointed to:

 de1c150... Add librsvg-devel to the OpenSuSE dependency list

New tag information:

  Tagger: Owen W. Taylor <otaylor fishsoup net>
  Date: Thu Jan 29 18:36:24 2009 -0500

------- Message -------
Release gnome-shell-2.28
-----------------------

Changes since the last tag 'GNOME-2.25.90':

 2d3988c... Bug 570579: Redo the layout of overlay components
 de1c150... Add librsvg-devel to the OpenSuSE dependency list
 ...

Annotated tag deleted
=====================

Subject: [gnome-shell] Deleted tag GNOME_SHELL_2_28_0

The tag 'GNOME_SHELL_2_28_0' was deleted. It previously pointed to:

 de1c150... Add librsvg-devel to the OpenSuSE dependency list

Lightweight tag created
=======================

Subject: [gnome-shell] Created tag GNOME_SHELL_2_28_0

The lightweight tag 'GNOME_SHELL_2_28_0' was created pointing to:

 2d3988c... Bug 570579: Redo the layout of overlay components

Lightweight tag updated
=======================

Subject: [gnome-shell] Updated tag GNOME_SHELL_2_28_0

The lightweight tag 'GNOME_SHELL_2_28_0' updated to point to:

 de1c150... Add librsvg-devel to the OpenSuSE dependency list

Lightweight tag deleted
=======================

Subject: [gnome-shell] Deleted tag GNOME_SHELL_2_28_0

The lightweight tag 'GNOME_SHELL_2_28_0' was deleted. It previously pointed to:

 de1c150... Add librsvg-devel to the OpenSuSE dependency list

Anything else
=============

Subject: [gnome-shell] Update to refs/weirdref/foo

refs/weirdref/foo was updated:

Old: 0000000000000000000000000000000000000000
New: 6ccdd4bfa29612137c3e6ea56ca2e925158e2ccf


Things falling into this:

 - Deleting an invalid reference that points to nowhere
   (maybe should be special cased)
 x Pushing a remote tracking branch (refs/remotes/*) to the server
 x Creating a reference not in refs/heads or refs/tags
 x Tagging something not a commit or tag object
 - Bugs in git
 - Bugs in the mail script

The things marked 'x' should be blocked in the pre-push checks.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]