Improve the version computation for the release notes

The "make -C ReleaseNotes" used to produce a version descriptor like:

  X.Y (from X.Y-rcN-...)

when the ReleaseNotes-X.Y.txt wasn't changed in the vX.Y tagged commit.

For example, if we checked out the v2.10 and then built the
ReleaseNotes-2.10.txt the version string in the html file was:

  2.10 (from v2.10-rc2-...)

which wasn't really nice for a final release. I had to change the
generated html file manually.

Here is an overview of how this change improves the computation of the
version string for the ReleaseNotes-2.10.txt file:

Checked out | Version (before)         | Version (after)
------------+--------------------------+---------------------
v2.10-rc2   | 2.10 (from 2.10-rc1-...) | 2.10 (from v2.10-rc2)
v2.10       | 2.10 (from 2.10-rc2-...) | 2.10
master      | 2.10 (from 2.10-rc2-...) | 2.10

Only add the "(from N)" suffix if the ReleaseNotes-X.Y.txt is
different in HEAD and in the vX.Y. In the "(from N)" string compute the
N as "git describe HEAD" instead of describing the last commit where the
ReleaseNotes-X.Y was changed.

Change-Id: I66aff6cc57cfbd42a332ca19445dedbfbee0b088
(cherry picked from commit 25bd938158)
This commit is contained in:
Saša Živkov 2015-01-28 12:51:22 +01:00 committed by Saša Živkov
parent ee58e83e75
commit 958d8e734b

View File

@ -16,7 +16,6 @@ ASCIIDOC ?= asciidoc
ASCIIDOC_EXTRA ?=
DOC_HTML := $(patsubst %.txt,%.html,$(wildcard ReleaseNotes*.txt))
COMMIT := $(shell git describe HEAD | sed s/^v//)
all: html
@ -38,9 +37,8 @@ $(DOC_HTML): %.html : %.txt
@echo FORMAT $@
@rm -f $@+ $@
@v=$$(echo $< | sed 's/^ReleaseNotes-//;s/.txt$$//;') && \
c=$$(git rev-list -1 HEAD -- $<) && \
n=$$(git describe $$c) && \
if [ "X$$n" != "Xv$$v" ]; then v="$$v (from $$n)"; fi && \
n=$$(git describe HEAD) && \
if ! git diff-index --quiet v$$v -- $< 2>/dev/null; then v="$$v (from $$n)"; fi && \
$(ASCIIDOC) --unsafe \
-a toc \
-a "revision=$$v" \