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

Re: Syntax check via update hook?

From
Mark Plaksin <happy@usg.edu>
Date
May 12, 2009, 19:16 UTC
Message-ID
<wsd4aem8rh.fsf@usg.edu>
In-Reply-To
<20090509144711.GA3926@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
> That sounds like a reasonable goal. In the hook itself, you can do one
> of:
Show 17 quoted lines
>   2. Check out the whole tree to a temp directory and run your full
>      syntax check there. The simplest way would be by using "git
>      archive" to generate the tree. You can make this a bit more
>      efficient by keeping the temp directory between runs and using
>      git to just update the changed files. Off the top of my head, that
>      would look something like:
>
>         $ cat <<EOF >.git/hooks/update
>         #!/bin/sh
>         GIT_INDEX_FILE=/path/to/tempdir/index; export GIT_INDEX_FILE
>         cd /path/to/tempdir/tree &&
>         mkdir -p tree &&
>         git read-tree "$3" &&
>         git checkout-index &&
>         your_syntax_check
>         EOF
>         $ chmod +x .git/hooks/update
Thanks for helping! :)

Unfortunately we don't quite get it. Can you flesh out your example a bit and explain the concepts involved? We're relative git newbies. We tried reading the man pages to the commands you use to no avail. One big stumbling block seems to be how we create/set-up tempdir. Is that supposed to be a pre-created git checkout, or created via git-archive, or .. ?

Also, we actually just want to check the syntax of the files that were changed in the commit, not the whole tree. Will your method give us access to the path names of the files that changed?

Thanks again!
Previous: Jeff KingNext: Jeff King
Message 3 of 8 in “Syntax check via update hook?”
  1. Mark PlaksinMay 8, 2009
  2. Jeff KingMay 9, 2009
  3. Mark PlaksinMay 12, 2009
  4. Jeff KingMay 14, 2009
  5. Mark PlaksinMay 14, 2009
  6. Mark PlaksinMay 20, 2009
  7. Jeff KingMay 20, 2009
  8. Mark PlaksinMay 20, 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.