On Mon, 20 Feb 2017 at 20:21:03, Jeff King wrote: > On Mon, Feb 20, 2017 at 07:38:02PM +0100, Lukas Fleischer wrote: > > > It would be handy to be able to show a message to the user when > > cloning/fetching from a repository (e.g. to show a warning if a > > repository is deprecated). This should technically already be possible > > using the current pack protocol and sidebands. However, to my knowledge, > > there is no easy way to configure this on the server side; writing a > > wrapper around git-upload-pack(1) or replacing git-upload-pack(1) seem > > to be the only options. > > I wouldn't recommend wrapping upload-pack. You don't know you have a > sideband until partway through the upload-pack conversation. And clients > do not expect sideband at all until we get to the pack-sending part of > the protocol (I think; I just quickly verified the location of the > demuxer async code in fetch-pack.c, but I didn't dig into it in depth). By wrapper I meant something that understands the pack protocol itself, intercepts the traffic, forwards most of it to git-upload-pack(1) and injects the message at the right time. I agree that it is a fairly ugly workaround, though. > [...] > If my fetch-pack assertion above is right, technically the hook added by > 20b20a22f is sufficient for your purposes, if your hook looks like: > > echo >&2 "pre-pack message" > git pack-objects "$@" > echo >72 "post-pack message" > > but I would not be opposed to having pre-/post- hooks that run > separately, if only for the convenience of the admin. > [...] I will give it a try. And I agree that it would still be convenient to have pre-upload-pack and post-upload-pack hooks. Regards, Lukas