diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2014-10-14 13:46:39 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2014-10-14 13:51:37 +0200 |
commit | 0856030c79f3febdafa627511cf1be4c72edf09b (patch) | |
tree | 0d4d1da365bd19d9d8b110a5a97f55696c13eaae /build/mkrevision.sh | |
parent | 7f86a80be21648e5054e75704d7574dcbf9220fa (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-x | build/mkrevision.sh | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/build/mkrevision.sh b/build/mkrevision.sh index 889ce75c2..02b7fa371 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" |