git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Generate version file by hooks

From
BHBjörn Hendriks <bjoern01@nurfuerspam.de>
Date
Mar 17, 2009, 15:26 UTC
Message-ID
<200903171626.01102.bjoern01@nurfuerspam.de>
Hello,

I'd like to put the SHA1 of the current commit into a source file so that my program can further process it -- put it into a log file for example.

My idea is to write a script which reads the SHA1 of the current commit with the call

git log -1 --pretty=format:"%H"

(git-describe is not suitable for me) and then generates the wanted source file. To avoid accidentally committing that file I will put its name into .git/info/exclude.

I already put the call to my experimental generator script into the hooks post-checkout and post-commit, so it will be called if I do a commit or a checkout of another branch.

My problem is, that my script won't be called if I do a git-pull, a git-reset or a git-merge without conflicts resulting in workfiles of a new commit. Maybe there are more git calls which change the current commit I haven't thought of yet?

So my question: How to make git call my script automatically in all cases where git changes the currently checked out commit?

Maybe there are different solutions to put the current SHA1 into a source file?

Of course I know that it's still possible to change the working files without git's notice resulting in an inconsistent commit SHA1. But before doing any test runs I normally check with git-status that all files are in a committed state but that won't reveal if my generated version file is not up to date.

I use git version 1.5.4.3 and would like to stick to it for some reason if possible.

Thanks for your help Björn

Next: Santi Béjar
Message 1 of 2 in “Generate version file by hooks”
  1. Björn HendriksMar 17, 2009
  2. Santi BéjarMar 17, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.