Show complete shortlog for small releases
[tig] / contrib / announcement.sh
1 #!/bin/sh
2 #
3 # Prepare the content of the next tig release announcement.
4 # Usage: $0 [revision]
5 #
6 # Copyright (c) 2008 Jonas Fonseca <fonseca@diku.dk>
7 #
8 # This program is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU General Public License as
10 # published by the Free Software Foundation; either version 2 of
11 # the License, or (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17
18 root="$(git rev-parse --show-cdup)"
19 NEWS="${root}NEWS"
20 SITES="${root}SITES"
21 from="$(sed -n '7,/^tig-/p' < "$NEWS" | tail -n 1 | cut -d' ' -f 1)"
22 to="${1-HEAD}"
23 short=
24
25 test -n "$(git rev-list --skip=50 $from..$to)" && short=-s
26
27 cat <<EOF
28 $to
29 $(echo "$to" | sed 's/[0-9a-zA-Z.-]/=/g')
30
31 *** text for the announcement ***
32
33 What is tig?
34 ------------
35 Tig is an ncurses-based text-mode interface for git. It functions mainly
36 as a git repository browser, but can also assist in staging changes for
37 commit at chunk level and act as a pager for output from various git
38 commands.
39
40 $(sed -n '/-/p' < "$SITES" | sed 's/[[(].*//')
41
42 Release notes
43 -------------
44 $(sed -n '7,/^tig-/p' < "$NEWS" | sed '/^tig-/d')
45
46 Change summary
47 --------------
48 The diffstat and log summary for changes made in this release.
49
50 $(git diff-tree --stat=72 $from..$to)
51
52 $(git shortlog $short $from..$to)
53 EOF