[GH #38] Do not pass navigation requests to the branch view when the main view is...
[tig.git] / contrib / release.sh
blobfd588ccb5af07060309afe1b489ceef7d194cb90
1 #!/bin/sh
3 # Script for preparing a release or updating the release branch.
4 # Usage: $0 version
6 # Copyright (c) 2009-2010 Jonas Fonseca <fonseca@diku.dk>
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.
18 set -e
19 set -x
21 VERSION="$1"
23 TAG="tig-$VERSION"
24 TITLE="$TAG\n$(echo "$TAG" | sed 's/./-/g')"
26 # Require a clean repository.
27 git update-index --refresh
28 git diff-index --quiet HEAD
30 if test -n "$VERSION"; then
31 # Get a sane starting point.
32 test "$(git symbolic-ref HEAD)" = "refs/heads/master" ||
33 git checkout master
35 # Update files which should reference the version.
36 echo "$VERSION" > VERSION
37 perl -pi -e 's/^tig master.*/@@TITLE@@/ms' NEWS
38 perl -pi -e "s/^@@TITLE@@.*/$TITLE/" NEWS
40 # Check for typos.
41 make spell-check
43 # Last review.
44 $EDITOR NEWS
46 # Create release commit and tag.
47 git commit -a -m "$TAG"
48 git tag -s -m "tig version $VERSION" "$TAG"
50 # Prepare release announcement file.
51 ./contrib/announcement.sh "$TAG" > "$TAG.txt"
53 # Set version for the Makefile
54 export DIST_VERSION="$VERSION"
55 else
56 # Get meaningful version for the update message.
57 TAG="$(git describe)"
60 # Update the release branch.
61 git checkout release
62 HEAD="$(git rev-parse release)"
63 git merge master
64 if test -n "$(git rev-list -1 release ^$HEAD)"; then
65 make distclean doc-man doc-html sysconfdir=++SYSCONFDIR++
66 git commit -a -m "Update for version $TAG"
69 if test -n "$VERSION"; then
70 # Create the tarball.
71 make dist
74 # Done.
75 git checkout master