From: Rafał Miłecki <ra...@milecki.pl> Counting commits to determine revision number is a wrong idea when there are branches in a project. This could generate the same revision for different git commits, e.g.:
For master branch: ./scripts/getver.sh bb9d2aa868 r3438-bb9d2aa868 For lede-17.01 branch: ./scripts/getver.sh 2e206c79cc r3438-2e206c79cc Let's use git's sha1 instead and add amount of local commits on top of this, e.g.: ./scripts/getver.sh c00fbaf670+3 Signed-off-by: Rafał Miłecki <ra...@milecki.pl> --- scripts/getver.sh | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/scripts/getver.sh b/scripts/getver.sh index 9175f411db..17b3dd64ae 100755 --- a/scripts/getver.sh +++ b/scripts/getver.sh @@ -27,20 +27,18 @@ try_git() { BRANCH="$(git rev-parse --abbrev-ref HEAD)" ORIGIN="$(git rev-parse --verify --symbolic-full-name ${BRANCH}@{u} 2>/dev/null)" [ -n "$ORIGIN" ] || ORIGIN="$(git rev-parse --verify --symbolic-full-name master@{u} 2>/dev/null)" - REV="$(git rev-list ${REBOOT}..$GET_REV | wc -l | awk '{print $1}')" if [ -n "$ORIGIN" ]; then UPSTREAM_BASE="$(git merge-base $GET_REV $ORIGIN)" - UPSTREAM_REV="$(git rev-list ${REBOOT}..$UPSTREAM_BASE | wc -l | awk '{print $1}')" + UPSTREAM_BASE_ABBR="$(git log -n 1 --format="%h" $UPSTREAM_BASE)" + LOCAL_COMMITS="$(git rev-list ${UPSTREAM_BASE}..$GET_REV | wc -l | awk '{print $1}')" else - UPSTREAM_REV=0 + UPSTREAM_BASE_ABBR="unknown" + LOCAL_COMMITS="$(git rev-list $GET_REV | wc -l | awk '{print $1}')" fi + [ $LOCAL_COMMITS -eq 0 ] && LOCAL_COMMITS="" - if [ "$REV" -gt "$UPSTREAM_REV" ]; then - REV="${UPSTREAM_REV}+$((REV - UPSTREAM_REV))" - fi - - REV="${REV:+r$REV-$(git log -n 1 --format="%h" $UPSTREAM_BASE)}" + REV="$UPSTREAM_BASE_ABBR${LOCAL_COMMITS:++$LOCAL_COMMITS}" ;; esac -- 2.11.0 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev