Re: Odd results writing a Git pre-receive hook to syntax check PHP files.
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Aug 30, 2010, 19:10 UTC
- Message-ID
- <4C7C020C.6090907@drmicha.warpmail.net>
- In-Reply-To
- <AANLkTi=VPf9CWNJcce6d20HQChi0mHgTG1F=jakzNT-O@mail.gmail.com>
Chris Patti venit, vidit, dixit 30.08.2010 19:37:
Show 16 quoted lines
> On Mon, Aug 30, 2010 at 12:33 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
>> Chris Patti wrote:
>>
>>> What if this is the
>>> first time a new ref is being pushed? Then, old-ref is 000000 and git
>>> diff --raw throws up a hairball :)
>>
>> Can't you check for 0{40} and use $(git hash-object -t tree </dev/null)
>> in its place?
>>
>> In general, the "LOW-LEVEL COMMANDS (PLUMBING)" listed on the git man
>> page are meant to be useful for scripts. They have simple input and
>> output formats, they don't try to introduce weird exceptions for user
>> convenience, the git developers are more conservative about changing
>> them, and so on.
>>git diff-tree --root $newrev
will take care of this.
Show 8 quoted lines
> > Maybe I'm not understanding your intent here, but, this is a > pre-receive hook, where you get handed two refs, the old (pre-push) > ref, and the new (after push) ref. > > git hash-object computes a hash from the file's contents. That's my > whole point, I don't *have* the file to compute! All I have is those > two refs.
You do have the files, otherwise you couldn't check them. They're in your git file system ;)
Michael