threads / discuss / 22932

git-http-backend: hook output not delivered to client

Subject: git-http-backend: hook output not delivered to client

## tl;dr

3 messages between Mar 6, 2010 and Mar 6, 2010.

replies: 2people: 2as markdown or json

BJ Hargrave· Mar 6, 2010, 22:24 UTC · lore
I have compiled and installed git 1.7.0.1 on a RHEL4 box and am using Apache httpd with git-http-backend. I have developed a pre-receive hook to validate that incoming commits are from a list of committers. I have tested the hook and it correctly detects invalid committers, outputs error message and exits with a non-zero return code. 
If I push a commit from an invalid committer to a repo using ssh, the hook properly detects this. git-push displays the pre-receive hook's output messages and indicates the push failed.
However if I push a commit from an invalid committer to the repo using http (git-http-backend), the hook is run and detects the invalid committer but the output messages (stderr) end up in the httpd error log instead of being ferried back to git-push. git-push does exit with an error code but the user has no visible indication there was an error on the push. The git-push output look like everything went fine even though the push failed.
So the push properly fails in both cases because the hook exits with a non-zero return code, but it seems there is a problem with git-http-backend not ferrying the hook output messages back to the client. Has anyone seen this? Or have I some how configure the system wrong?
Thanks,
-- 
BJ Hargrave
Shawn O. Pearce· Mar 6, 2010, 22:30 UTC · re: BJ Hargrave · lore

Re: git-http-backend: hook output not delivered to client

BJ Hargrave <bj@bjhargrave.com> wrote:
> I have compiled and installed git 1.7.0.1 on a RHEL4 box
... 
> So the push properly fails in both cases because the hook exits
> with a non-zero return code, but it seems there is a problem with
> git-http-backend not ferrying the hook output messages back to
> the client.
Yes, we know about this problem.

You need commit 466dbc42f5 ("receive-pack: Send internal errors over side-band #2") on both the client and the server for hook messages to work over HTTP.

This hasnt been released yet.  It is slated for 1.7.0.2.
-- 
Shawn.
BJ Hargrave· Mar 6, 2010, 22:53 UTC · re: Shawn O. Pearce · lore

Re: git-http-backend: hook output not delivered to client

Thanks for the quick feedback. I will keep my eye out for 1.7.0.2.
-- 
BJ Hargrave



On Mar 6, 2010, at 17:30 , Shawn O. Pearce wrote:

> BJ Hargrave <bj@bjhargrave.com> wrote:
>> I have compiled and installed git 1.7.0.1 on a RHEL4 box
> ... 
>> So the push properly fails in both cases because the hook exits
>> with a non-zero return code, but it seems there is a problem with
>> git-http-backend not ferrying the hook output messages back to
>> the client.
> 
> Yes, we know about this problem.
> 
> You need commit 466dbc42f5 ("receive-pack: Send internal errors over
> side-band #2") on both the client and the server for hook messages
> to work over HTTP.
> 
> This hasnt been released yet.  It is slated for 1.7.0.2.
> 
> -- 
> Shawn.
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

← back to recent threads