3 # Script for preparing a release or updating the release branch.
6 # Copyright (c) 2009-2014 Jonas Fonseca <jonas.fonseca@gmail.com>
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.
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.
24 TITLE
="$TAG\n$(echo "$TAG" | sed 's/./-/g')"
27 # Require a clean repository.
28 git update-index
--refresh
29 git diff-index
--quiet HEAD
31 if test -n "$VERSION"; then
32 # Get a sane starting point.
33 test "$(git symbolic-ref HEAD)" = "refs/heads/master" ||
36 # Update files which should reference the version.
37 sed -i "s/VERSION\s*=\s*[0-9.]\+/VERSION = $VERSION/" Makefile
38 perl
-pi -e 's/^master$/RELEASE_TITLE/ms' "$NEWS"
39 perl
-pi -e 's/^RELEASE_TITLE.*/RELEASE_TITLE/ms' "$NEWS"
40 perl
-pi -e "s/^RELEASE_TITLE.*/$TITLE/" "$NEWS"
48 # Create release commit and tag.
49 git commit
-a -m "$TAG"
50 git tag
-s -m "tig version $VERSION" "$TAG"
52 # Prepare release announcement file.
53 .
/tools
/announcement.sh
"$TAG" > "$TAG.txt"
55 # Set version for the Makefile
56 export DIST_VERSION
="$VERSION"
58 # Get meaningful version for the update message.
62 # Update the release branch.
64 HEAD
="$(git rev-parse release)"
66 if test -n "$(git rev-list -1 release ^$HEAD)"; then
67 make distclean doc-man doc-html sysconfdir
=++SYSCONFDIR
++
68 git commit
-a -m "Update for version $TAG"
71 if test -n "$VERSION"; then