2 # Announcement message skelton
4 tmpbase
=/var
/tmp
/git-announce.$$
5 trap 'rm -f $tmpbase.*' 0
10 relname
=$
(git describe
"$commit") &&
11 vername
=$
(expr "$relname" : 'v\(.*\)') ||
exit $?
13 git rev-parse
--verify "$previous" >/dev
/null ||
exit $?
17 kind
="The latest maintenance release" ;;
18 mainto
/* | maint-
[0-9]*)
19 kind
="A maintenance release" ;;
21 kind
="The latest feature release" ;;
29 kind
="An early preview release"
32 kind
="A release candidate"
35 for_testing
=" for testing"
43 vername
=$
(echo "$vername" |
tr "-" ".")
45 git log
--use-mailmap --format='%aN,' "$previous" |
sort -u >"$tmpbase.prev"
46 git log
--use-mailmap --format='%aN,' "$previous..$commit" |
sort -u >"$tmpbase.this"
47 comm -12 "$tmpbase.prev" "$tmpbase.this" >"$tmpbase.old"
48 comm -13 "$tmpbase.prev" "$tmpbase.this" >"$tmpbase.new"
50 all
=$
(wc -l <"$tmpbase.this")
51 new
=$
(wc -l <"$tmpbase.new")
52 cnt
=$
(git rev-list
--no-merges "$previous..$commit" |
wc -l)
55 To: git@vger.kernel.org
56 Cc: Linux Kernel <linux-kernel@vger.kernel.org>
58 Subject: [ANNOUNCE] Git $relname
63 echo "$kind Git $relname is now available$for_testing at the usual places."
64 if test "$branch" = master
67 It is comprised of $cnt non-merge commits since $previous,
68 contributed by $all people, $new of which are new faces.
75 The tarballs are found at:
77 https://www.kernel.org/pub/software/scm/git/${for_testing:+testing/}
83 The following public repositories all have a copy of
84 the '$relname' tag and
88 echo "some of them have"
91 echo "the '$branch' branch that the tag points at:"
96 url
= https
://kernel.googlesource.com
/pub
/scm
/git
/git
97 url
= git
://repo.or.cz
/alt-git.git
98 url
= https
://code.google.com
/p
/git-core
/
99 url
= git
://git.sourceforge.jp
/gitroot
/git-core
/git.git
100 url
= git
://git-core.git.sourceforge.net
/gitroot
/git-core
/git-core
101 url
= https
://github.com
/gitster
/git
105 # Yes, I don't perform well without 2 or more people.
106 # Sue me. The heading says "are as follows" anyway ;-).
116 if test "$branch" = master
120 New contributors whose contributions weren't in $previous are as follows.
121 Welcome to the Git development community!
123 $(fmt_people "$tmpbase.new")
125 Returning contributors who helped this release are as follows.
126 Thanks for your continued support.
128 $(fmt_people "$tmpbase.old")
134 ----------------------------------------------------------------
138 case "$(git ls-tree ${branch} RelNotes)" in
140 RelNotes
=$
(git cat-file blob
"${branch}:RelNotes")
146 git cat-file blob
"${branch}:$RelNotes" |
149 sed -e 's/^Git .* Release Notes$/& (draft)/' \
150 -e 's/^=============/&========/'
159 ----------------------------------------------------------------
161 Changes since $previous are as follows:
165 git log
--no-merges "$previous"..
"$branch" |