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

[PATCH 0/3] Propagating push options to remote hooks

From
Dennis Kaarsemaker <dennis@kaarsemaker.net>
Date
Jan 30, 2016, 18:28 UTC
Message-ID
<1454178490-17873-1-git-send-email-dennis@kaarsemaker.net>

I have a few pre-receive hooks that are meant to catch mistakes. They are fairly strict, as the mistakes it catches can have some serious bad effects. However, sometimes they get it wrong (and can't really get it right) and it would be really useful to override them.

Currently I do this by parseing the commit message, looking for 'Force: true', but it would be very useful if --force were propagated to the hook. Obviously, making --force skip all remote hooks would be a very bad way of doing this. Hooks should decide whether --force is respected or not.

Instead of that, we can pass options to receive-pack using a new capability, and receive-pack can make it available to hooks in their environment. That way we don't change behaviour of existing hooks and each hook can decide for itself whether it respects these options.

The initial implementation only passes on --quiet and --force. I've been thinking of allowing the user of push to specify arbitrary values, but don't see the value of that yet. It would be easy to add though.

Dennis Kaarsemaker (3):
  connect.[ch]: make parse_feature_value non-static
  receive-pack: add a capability for hook options
  send-pack: propagate --force and --quiet to remote hooks
 Documentation/technical/protocol-capabilities.txt |  9 ++++++
 builtin/receive-pack.c                            | 19 ++++++++++--
 connect.c                                         |  3 +-
 connect.h                                         |  1 +
 send-pack.c                                       | 10 ++++++
 t/t5544-push-hook-options.sh                      | 37 +++++++++++++++++++++++
 6 files changed, 75 insertions(+), 4 deletions(-)
 create mode 100755 t/t5544-push-hook-options.sh
-- 
2.7.0-91-gf04ef09
Next: Dennis Kaarsemaker
Message 1 of 4 in “Propagating push options to remote hooks”
  1. 0/3 Propagating push options to remote hooksDennis Kaarsemaker, Jan 30, 2016
  2. 1/3 connect.[ch]: make parse_feature_value non-staticDennis Kaarsemaker, Jan 30, 2016
  3. 2/3 receive-pack: add a capability for hook optionsDennis Kaarsemaker, Jan 30, 2016
  4. 3/3 send-pack: propagate --force and --quiet to remote hooksDennis Kaarsemaker, Jan 30, 2016

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.