summaryrefslogtreecommitdiffhomepage
path: root/build/mkrevision.sh
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2014-10-14 13:46:39 +0200
committerJo-Philipp Wich <jow@openwrt.org>2014-10-14 13:51:37 +0200
commit0856030c79f3febdafa627511cf1be4c72edf09b (patch)
tree0d4d1da365bd19d9d8b110a5a97f55696c13eaae /build/mkrevision.sh
parent7f86a80be21648e5054e75704d7574dcbf9220fa (diff)
build: generate strictly increasing git revisions (#225)
Instead of simply emitting a "git-$hash" revision, take the commit time into account to generate strictly increasing revisions to preserve opkg upgrade capabilities. The format is "git-YY.DDD.SSSSS-HHHHHHH" with the following defined fields: - YY year number (00..99) - DDD day of year (001..366) - SSSSSS second of day (00000..86399) - HHHHHHH abbreviated git commit hash An example revision is "git-14.283.50202-bb388f0". Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'build/mkrevision.sh')
-rwxr-xr-xbuild/mkrevision.sh5
1 files changed, 4 insertions, 1 deletions
diff --git a/build/mkrevision.sh b/build/mkrevision.sh
index 889ce75c24..02b7fa3710 100755
--- a/build/mkrevision.sh
+++ b/build/mkrevision.sh
@@ -14,7 +14,10 @@ TOPDIR="${0%mkrevision.sh}"
elif git log -1 >/dev/null 2>/dev/null; then
revision="svn-r$(LC_ALL=C git log -1 | sed -ne 's/.*git-svn-id: .*@\([0-9]\+\) .*/\1/p')"
if [ "$revision" = "svn-r" ]; then
- revision="git-$(LC_ALL=C git log -1 --pretty=%h)"
+ set -- $(git log -1 --format="%ct %h")
+ secs="$(($1 % 86400))"
+ yday="$(date --utc --date="@$1" "+%y.%j")"
+ revision="$(printf 'git-%s.%05d-%s' "$yday" "$secs" "$2")"
fi
else
revision="unknown"