-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
/
commit-name.sh
executable file
·43 lines (39 loc) · 1.25 KB
/
commit-name.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/sh
# This file is a part of Julia. License is MIT: https://julialang.org/license
# Needs to be run from a julia repo clone
# First argument (optional) is a ref to the commit
gitref=${1:-HEAD}
ver=$(git show "$gitref:VERSION")
major=$(echo $ver | cut -f 1 -d .)
minor=$(echo $ver | cut -f 2 -d .)
if [ $major = 0 -a $minor -lt 5 ]; then
# use tag based build number prior to 0.5.0-
last_tag=$(git describe --tags --abbrev=0 "$gitref")
nb=$(git rev-list --count "$gitref" "^$last_tag")
if [ $nb = 0 ]; then
echo $ver
else
echo "$ver+$nb"
fi
else
topdir=$(git rev-parse --show-toplevel)
verchanged=$(git blame -L ,1 -sl $gitref -- "$topdir/VERSION" | cut -f 1 -d " ")
nb=$(git rev-list --count "$gitref" "^$verchanged")
pre=$(echo $ver | cut -s -f 2 -d "-")
if [ $ver = "0.5.0-dev" ]; then
# bump to 0.5.0-dev was one commit after tag during 0.5.0-dev
nb=$(expr $nb + 1)
elif [ $ver = "0.5.0-pre" ]; then
# bump to 0.5.0-pre was 5578 commits after tag
nb=$(expr $nb + 5578)
fi
if [ -n "$pre" ]; then
if [ $major = 0 -a $minor -le 5 ]; then
echo "$ver+$nb"
else
echo "$ver.$nb"
fi
else
echo $ver
fi
fi