diff --git a/release.sh b/release.sh index 4472469..1f72922 100755 --- a/release.sh +++ b/release.sh @@ -17,20 +17,25 @@ releasedir=$PACKAGE-$release GIT_DIR=`cd "${GIT_DIR-.git}" && pwd` export GIT_DIR +if [ `git diff --cached | wc -l` -ne 0 ]; then + echo "$0: index not clean" 1>&2 + exit 1 +fi + if [ x"$release" = x'test' ]; then release=`cat version` releasetag=HEAD releasedir=$PACKAGE-$release else - echo $release > version.new - if ! cmp -s version version.new ; then - mv -f version.new version - cg-commit -m 'Update version for release' version + echo $release > version + if [ `git diff version | wc -l` -ne 0 ]; then + git add version + git commit -m "Update version for release $release" version else - rm -f version.new + git checkout version fi rm -f "$GIT_DIR"/refs/tags/$releasetag - cg-tag $releasetag + git tag -a -m "$releasetag" -f "$releasetag" fi here=`pwd` @@ -39,7 +44,8 @@ tmpdir=/var/tmp/release.$$ rm -rf $tmpdir mkdir -p $tmpdir cd $tmpdir -cg-export -r $releasetag $releasedir +mkdir -p $releasedir +git archive --format=tar $releasetag | tar -xf - -C $releasedir cd $releasedir make release rm -f release.sh