Under shallow clone of perfbook repo, "git describe" can't work. Catch the error and use "git log" to obtain the commit id instead. Following is the comparison of autodate.tex. Before: \date{February 3, 2023 \\ Tag: \texttt{} } \newcommand{\commityear}{2023} \newcommand{\commitid}{} \IfQqzBg{}{\setboolean{qqzbg}{false}} % tcolorbox version: 5.1 \tcbsetforeverylayer{autoparskip} After: \date{February 3, 2023 \\ Commit: \texttt{g25bd138c30bf} (shallow clone) } \newcommand{\commityear}{2023} \newcommand{\commitid}{g25bd138c30bf} \IfQqzBg{}{\setboolean{qqzbg}{false}} % tcolorbox version: 5.1 \tcbsetforeverylayer{autoparskip} Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> Cc: Leonardo Bras <leobras.c@xxxxxxxxx> --- utilities/autodate.sh | 54 ++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/utilities/autodate.sh b/utilities/autodate.sh index e33c254d917f..6d10b5d7d2b4 100644 --- a/utilities/autodate.sh +++ b/utilities/autodate.sh @@ -52,27 +52,28 @@ else else modified="" fi - description="`git describe --tags HEAD`" - case "$description" in - *-g*) - release=`env printf 'Commit: \\\texttt{%s}' "$description"` - commitid="$description" - ;; - v*) - release="Release $description" - commitid=$description - qqzbg="true" - ;; - Edition*) - release="Edition" - commitid=$description - qqzbg="true" + if description="`git describe --tags HEAD 2> /dev/null`" + then case "$description" in - *P*) - release="Print $release" + *-g*) + release=`env printf 'Commit: \\\texttt{%s}' "$description"` + commitid="$description" ;; - esac - case "$description" in + v*) + release="Release $description" + commitid=$description + qqzbg="true" + ;; + Edition*) + release="Edition" + commitid=$description + qqzbg="true" + case "$description" in + *P*) + release="Print $release" + ;; + esac + case "$description" in Edition[.-][0-9]*) ednum="`echo $description | sed -e 's/^Edition[.-]\([0-9]*\).*$/\1/'`" release=`env printf '\\Ordinalstringnum{%s} %s' $ednum "$release"` @@ -85,11 +86,16 @@ else ;; esac ;; - *) - release=`env printf 'Tag: \\\texttt{%s}' "$description"` - commitid=`echo $description | sed -e 's/.*-\(g.*\)/\1/'` - ;; - esac + *) + release=`env printf 'Tag: \\\texttt{%s}' "$description"` + commitid=`echo $description | sed -e 's/.*-\(g.*\)/\1/'` + ;; + esac + else + description=`git log --max-count=1 | head -n 1 | sed -e 's/^commit \([0-9a-f]\{12\}\).*$/g\1/'` + release=`env printf 'Commit: \\\texttt{%s} (shallow clone)' "$description"` + commitid="$description" + fi fi month=`date --date="$date_str" +%B` year=`date --date="$date_str" +%Y` base-commit: 3bfa0a092334e3a82bf75217b01d500ad78b6dc5 -- 2.25.1