From 0856030c79f3febdafa627511cf1be4c72edf09b Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Tue, 14 Oct 2014 13:46:39 +0200 Subject: [PATCH] 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 --- build/mkrevision.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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" -- 2.25.1