From 517916514bb2fc3d09a73ee8e5d942b7748e33aa Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Sun, 19 May 2013 09:34:21 -0400 Subject: [PATCH] Working on automatic changelogs --- gitversion | 9 +++++++-- hgversion | 11 +++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gitversion b/gitversion index 6522a6c..53d5fbe 100644 --- a/gitversion +++ b/gitversion @@ -1,5 +1,7 @@ #!/bin/bash +LOGSPEC='%ci %an <%aE>%n%n %s%n [%h]%d%n' + BRANCH=$2 if [ "${BRANCH}" == "" ]; then BRANCH=$(git branch | grep '^\*\s*.*' | cut -d ' ' -f 2) @@ -9,6 +11,7 @@ REBUILDING=0 SHA1=$(git rev-parse HEAD) TAG=$(git describe --tags `git rev-list --tags --max-count=1` 2>/dev/null) BUILD=0 +CHANGELOG="$(git log --format="format:$LOGSPEC" ${BRANCH}@{0}..HEAD)" if [ "$TAG" == "" ]; then BUILD=0 REBUILDING=1 @@ -18,6 +21,7 @@ else BUILD=$(echo $TAG | cut -d , -f 3) TAGSHA=$(git rev-list $TAG | head -n 1) if [ "$TAGSHA" != "$SHA1" ]; then + CHANGELOG="$(git log --format="format:$LOGSPEC" $TAGSHA..$SHA1)" BUILD=$(expr $BUILD + 1) REBUILDING=1 else @@ -31,7 +35,7 @@ if [ "$OS_NAME" == "" ] && [ "$(uname)" == "Darwin" ]; then OS_NAME="osx" elif [ "$OS_NAME" == "" ] && [ -f /etc/redhat-release ]; then OS_NAME="el" -elif [ "$OS_NAME" == "" ] && [ "$(uname | grep -i '^MINGW')" != "" ] || [ "$(uname)" == "Cygwin" ]; then +elif [ "$OS_NAME" == "" ] && [ "$(uname | grep -i '^MINGW')" != "" ] || [ "$(uname | grep -i '^CYGWIN')" != "" ]; then OS_NAME="win" fi @@ -54,7 +58,7 @@ if [ "$ARCH" == "" ]; then fi fi -SOURCE=$(git remote show origin | grep "Fetch URL" | cut -d : -f 2- | cut -d ' ' -f 2-) +SOURCE=$((git remote show origin 2>/dev/null | grep "Fetch URL" | cut -d : -f 2- | cut -d ' ' -f 2-) || echo '') echo "TAG=\"${TAG}\"" echo "BRANCH=\"${BRANCH}\"" @@ -70,3 +74,4 @@ echo "BUILDUSER=\"$(whoami)\"" echo "BUILDDIR=\"$(pwd)\"" echo "SOURCE=\"${SOURCE}\"" echo "REBUILDING=$REBUILDING" +echo "CHANGELOG=\"$CHANGELOG\"" diff --git a/hgversion b/hgversion index de7163b..f739a08 100644 --- a/hgversion +++ b/hgversion @@ -7,9 +7,10 @@ fi REBUILDING=0 SHA1=$(hg identify -i | grep -Eo "[a-zA-Z0-9]+") -TAG=$(hg identify -t) -LASTTAGGEDBUILD=$(hg log -r $(hg identify -n):0 --branch $BRANCH --template "{tags}\n" | grep -v "^$" | grep "build|" | head -n 1) +TAG=$(hg parents --template '{latesttag}') +TAGSHA=$(hg identify -r $TAG | cut -d ' ' -f 1) BUILD=0 +CHANGELOG="$(hg log -X .hgtags --style=changelog -r ${TAG}:${SHA1})" if [ "$TAG" == "" ]; then BUILD=0 REBUILDING=1 @@ -20,6 +21,7 @@ else SHORTTAGSHA=${TAGSHA:0:12} hg log -r ${SHA1} | grep "Added tag build|${BRANCH}|${BUILD} for changeset ${SHORTTAGSHA}" >/dev/null if [ $? -ne 0 ] && [ "$TAGSHA" != "$SHA1" ]; then + CHANGELOG="$(hg log -X .hgtags --style=changelog -r ${SHORTTAGSHA}:${SHA1})" BUILD=$(expr $BUILD + 1) REBUILDING=1 else @@ -33,7 +35,7 @@ if [ "$OS_NAME" == "" ] && [ "$(uname)" == "Darwin" ]; then OS_NAME="osx" elif [ "$OS_NAME" == "" ] && [ -f /etc/redhat-release ]; then OS_NAME="el" -elif [ "$OS_NAME" == "" ] && [ "$(uname | grep -i '^MINGW')" != "" ] || [ "$(uname)" == "Cygwin" ]; then +elif [ "$OS_NAME" == "" ] && [ "$(uname | grep -i '^MINGW')" != "" ] || [ "$(uname | grep -i '^CYGWIN')" != "" ]; then OS_NAME="win" fi @@ -56,7 +58,7 @@ if [ "$ARCH" == "" ]; then fi fi -SOURCE=$(cat .hg/hgrc | grep default | cut -d = -f 2 | sed s/"^ *"//g) +SOURCE=$((cat .hg/hgrc 2>/dev/null | grep default | cut -d = -f 2 | sed s/"^ *"//g) || echo '') echo "TAG=\"${TAG}\"" echo "BRANCH=\"${BRANCH}\"" @@ -72,3 +74,4 @@ echo "BUILDUSER=\"$(whoami)\"" echo "BUILDDIR=\"$(pwd)\"" echo "SOURCE=\"${SOURCE}\"" echo "REBUILDING=$REBUILDING" +echo "CHANGELOG=\"$CHANGELOG\""