|
@@ -212,7 +212,14 @@ get_version() {
|
212
|
212
|
grep ":" <<<"$prerl" && warn "colon in PRERELEASE may corrupt version data: $prerl"
|
213
|
213
|
if git rev-parse HEAD >&/dev/null;
|
214
|
214
|
then # we are in git repo... so we can get smart
|
215
|
|
- local lasttag=$(git tag | grep ^v | sort -V | tail -n1)
|
|
215
|
+ local latest_tag=$(
|
|
216
|
+ git log --format="%D" \
|
|
217
|
+ | sed 's/,/\n/g' \
|
|
218
|
+ | sed 's/^[[:blank:]]*//; ' \
|
|
219
|
+ | grep -E '^tag: v[[:digit:]]+\.' \
|
|
220
|
+ | cut -d' ' -f2 \
|
|
221
|
+ | head -1
|
|
222
|
+ )
|
216
|
223
|
if ! git describe --tags --exact-match HEAD >&/dev/null;
|
217
|
224
|
then # we are at a later commit than the last tag
|
218
|
225
|
local sha=g$(git log -1 --pretty=format:%h HEAD)
|
|
@@ -223,7 +230,7 @@ get_version() {
|
223
|
230
|
then # the tree is "dirty", i.e. has been edited
|
224
|
231
|
local dirty=dirty
|
225
|
232
|
fi
|
226
|
|
- test -n "$lasttag" && version=${lasttag:1}
|
|
233
|
+ test -n "$latest_tag" && version=${latest_tag:1}
|
227
|
234
|
local suffix=""
|
228
|
235
|
case "$commit:$dirty" in
|
229
|
236
|
:) suffix="" ;;
|