A directory can be a git directory in 2 cases:
* it is a git repository, checked with -d .git
+ it is a git worktree directory (see git help worktree)
Modify auxprogs/make_or_upd_vgversion_h so that it detects worktree directory
and produces a correct git version for --version -v
extract_git_version()
{
- if [ -d "$1"/.git ]
+ PREVPWD="$PWD"
+ cd "$1"
+ if [ -d ./.git ] || git rev-parse --is-inside-work-tree > /dev/null 2> /dev/null
then
REV=$(git show --format=%H#%ci -s $(git rev-parse HEAD) |
sed -e 's/ .*//' -e 's/[0-9a-f]\{30\}#/#/' -e 's/-//g' \
echo $REV$X
else
echo "unknown"
- fi
+ fi
+ cd "$PREVPWD"
}
srcdir="${1:-.}"
/* Do not edit: file generated by auxprogs/make_or_upd_vgversion_h.
This file defines VGGIT, used to report GIT revision
when using command line options: -v --version
- The produced VGGIT format is
+ The produced VGGIT format is
hhhhhhhhhh-YYYYMMDDX
where hhhhhhhhhh is the first 10 characters of the HEAD commit
YYYYMMDD is the commit date