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

Re: [PATCH v4 1/2] hooks: allow input from stdin for commit-related hooks

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Nov 19, 2020, 21:23 UTC
Message-ID
<CAPig+cSN=-7KWgDcXM8po44PEKi27U6mJEEL0mj_wrTJBUf=WA@mail.gmail.com>
In-Reply-To
<3bd6024a236b061c89bb6b60daf3dc15ef1e32ca.1605819390.git.gitgitgadget@gmail.com>

On Thu, Nov 19, 2020 at 3:57 PM Orgad Shaneh via GitGitGadget <gitgitgadget@gmail.com> wrote:

Show 8 quoted lines
> Let hooks receive user input if applicable.
> [...]
> This allows for example prompting the user to choose an issue
> in prepare-commit-msg, and add "Fixes #123" to the commit message.
>
> Another possible use-case is running sanity test on pre-commit,
> and having a prompt like "This and that issue were found in your
> changes. Are you sure you want to commit? [Y/N]".

These use-cases really help readers understand the motivation for this change. Good.

Show 6 quoted lines
> Allow stdin only for commit-related hooks. Some of the other
> hooks pass their own input to the hook, so don't change them.
>
> Note: If pre-commit reads from stdin, and git commit is executed
> with -F - (read message from stdin), the message is not read
> correctly. This is fixed in the follow-up commit.

Rather than making such a fundamental change and having to deal with the fallout by introducing complexity to handle various special-cases which pop up now and in the future, I wonder if it makes more sense to instead just update documentation to tell hook authors to read explicitly from the console rather than expecting stdin to be available (since stdin may already be consumed for other purposes when dealing with hooks or commands which invoke the hooks).

Previous: Orgad Shaneh via GitGitGadgetNext: Junio C Hamano
Message 10 of 22 in “hooks: allow input from stdin”
  1. hooks: allow input from stdinOrgad Shaneh via GitGitGadget, Nov 17, 2020
  2. Junio C HamanoNov 17, 2020
  3. hooks: allow input from stdinOrgad Shaneh via GitGitGadget, Nov 19, 2020
  4. hooks: allow input from stdin for commit-related hooksOrgad Shaneh via GitGitGadget, Nov 19, 2020
  5. Junio C HamanoNov 19, 2020
  6. Orgad ShanehNov 19, 2020
  7. 0/2 hooks: allow input from stdin for commit-related hooksOrgad Shaneh via GitGitGadget, Nov 19, 2020
  8. 2/2 commit: fix stdin conflict between message and hookOrgad Shaneh via GitGitGadget, Nov 19, 2020
  9. 1/2 hooks: allow input from stdin for commit-related hooksOrgad Shaneh via GitGitGadget, Nov 19, 2020
  10. Eric SunshineNov 19, 2020
  11. Junio C HamanoNov 19, 2020
  12. Orgad ShanehNov 20, 2020
  13. Eric SunshineNov 20, 2020
  14. Eric SunshineNov 20, 2020
  15. Orgad ShanehNov 20, 2020
  16. Junio C HamanoNov 20, 2020
  17. Ævar Arnfjörð BjarmasonNov 20, 2020
  18. Orgad ShanehNov 20, 2020
  19. 0/2 hooks: allow input from stdin for commit-related hooksOrgad Shaneh via GitGitGadget, Dec 9, 2020
  20. 1/2 hooks: lay foundations for passing stdin to hooksOrgad Shaneh via GitGitGadget, Dec 9, 2020
  21. 2/2 hooks: allow input from stdin for commit-related hooksOrgad Shaneh via GitGitGadget, Dec 9, 2020
  22. Junio C HamanoDec 9, 2020

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.