On Mon, 11 Jul 2022 at 01:01, john <jra...@ceridwen.us> wrote: > > On Jul 10, 2022, at 4:38 AM, Kevin Buckley <kevin.m.buck...@gmail.com> wrote: > > I have recently discovered that > > util/gnc-vcs-info > > fails if building from a Git worktree. > > Within gnc-vcs-info is this test > > # Maybe it's git? > real_gitdir="${real_srcdir}"/.git > if test -d "${real_gitdir}" > then > ... > > however, if you have checked out a Git branch into a worktree, > then .git will be a file containing the string > > gitdir: /path/to/main/working/tree/.git/worktrees/branchname > > In order to allow gnc-vcs-info to "do the right thing" from > within a Git worktree, I'd suggest adding the following stanza > to gnc-vcs-info, which basically replicates the code from the > existing "Maybe it's git?" block, but allows for the fact that > you know it's a worktree > > fi > fi > > +# Maybe it's a git worktree? > +real_gitdir="${real_srcdir}"/.git > +if test -f "${real_gitdir}" > +then > + worktrees=`grep worktrees ${real_gitdir}` > + if test $? = 0 ; then > + > + if [ "$request" = "type" ] > + then > + echo "git" > + exit 0 > + fi > + > + # The windows build uses environment variable $GIT_CMD to invoke > git (adding git > + # to the PATH in Windows results in a build failure). > + # So for platform independence, use GIT_CMD for all > + [ -n "$GIT_CMD" ] || GIT_CMD=git > + if [ "$request" = "date" ] > + then > + exec "$GIT_CMD" log -1 --format=%cd --date=short > + exit 0 > + fi > + > + githead=`"$GIT_CMD" log -1 --pretty=format:"%h" HEAD 2>/dev/null` > # short hash only > + if test $? = 0 ; then > + /bin/echo -n $githead > + # Add a "+" to the hash if there deleted or modified files (not > excluded by .gitignore and friends) > + # "Ignores" untracked files > + # [ $("$GIT_CMD" ls-files -dkm 2>/dev/null | wc -l) -gt 0 ] && > /bin/echo -n "+" > + # Includes untracked files > + [ $("$GIT_CMD" ls-files -dkmo --exclude-standard 2>/dev/null | > wc -l) -gt 0 ] && /bin/echo -n "+" > + echo > + exit 0 > + else > exit 1 > + fi > + > + fi > +fi > + > if test -d "${real_srcdir}"/.bzr ; > then > # If we're only interested in the vcs type, then we're done here > > > or you might want to come up with something else to handle building > from a Git Worktree, in which case feel free to (ab)use the above as > you see fir. > > > Nice. Please submit that as a Github pull request, see > https://wiki.gnucash.org/wiki/Simple_Pull_Request > > Regards, > John Ralls >
Hopefully gone through now, as Update gnc-vcs-info #1397 _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel