diff --git a/bin/git-release b/bin/git-release index 18fda980a..a2abb715a 100755 --- a/bin/git-release +++ b/bin/git-release @@ -58,7 +58,7 @@ if test $# -gt 0; then latest_tag=$(git describe --tags "$(git rev-list --tags --max-count=1)") if [[ ! "$latest_tag" =~ \ - ^([^0-9]*)([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)(.*) ]]; then + ^([^0-9]*)([1-9][0-9]+|[0-9])\.([1-9][0-9]+|[0-9])\.([1-9][0-9]+|[0-9])(.*) ]]; then echo "the latest tag doesn't match semver format requirement" 1>&2 exit 1 fi @@ -75,8 +75,8 @@ if test $# -gt 0; then (( ++version )) case "$semver" in - major ) version="${BASH_REMATCH[1]}$version.${BASH_REMATCH[3]}.${BASH_REMATCH[4]}${BASH_REMATCH[5]}" ;; - minor ) version="${BASH_REMATCH[1]}${BASH_REMATCH[2]}.$version.${BASH_REMATCH[4]}${BASH_REMATCH[5]}" ;; + major ) version="${BASH_REMATCH[1]}$version.0.0${BASH_REMATCH[5]}" ;; + minor ) version="${BASH_REMATCH[1]}${BASH_REMATCH[2]}.$version.0${BASH_REMATCH[5]}" ;; patch ) version="${BASH_REMATCH[1]}${BASH_REMATCH[2]}.${BASH_REMATCH[3]}.$version${BASH_REMATCH[5]}" ;; esac fi