On Thu, Apr 6, 2017 at 4:03 PM, Eric Belhomme <rico-ml@xxxxxxxxxxxx> wrote: > Until now I ever had a quite "basic" Git usage, but now I'm working on a > project based on Git hooks feature.. and I'm a very beginner with Git hooks > ! > > My need consist doing a syntax check on submitted files before a 'git push'. > So the right hook is 'pre-receive' and I'm already able to identify the > files I want to check using 'git show'. > > But I don't know how to get the *content* of the file being submitted to run > my syntax check rules against it ! > > I googled but most examples using pre-receive I found are doing sanity check > on enveloppe but never on actual content of the file ! > > Could someone here put me on the rails ? > > Regards, As documented in githooks(5), the hook gets a list of these on stdin: <old-value> SP <new-value> SP <ref-name> LF That means that you can use any git command to inspect that ref range, e.g.: git log -p <old>..<new> git diff <old>..<new> Or (pseudocode): git show <commit>:<some path> for $(git rev-list <old>..<new>) This is no different than how you'd inspect the content in your git repo, e.g. to get the README.md content of the master branch of git.git: $ git ls-tree master|grep README 100644 blob f17af66a97c8097ab91f074478c4a5cb90425725 README.md $ git cat-file blob f17af66a97c8097ab91f074478c4a5cb90425725|wc 61 397 3001