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

Re: [PATCH] commit: inform pre-commit if --amend is used

From
Jeff King <peff@peff.net>
Date
Nov 25, 2014, 03:44 UTC
Message-ID
<20141125034424.GA19161@peff.net>
In-Reply-To
<1416828111-4567-1-git-send-email-oystwa@gmail.com>
On Mon, Nov 24, 2014 at 12:21:51PM +0100, Øystein Walle wrote:
>  This hook is invoked by 'git commit', and can be bypassed
> -with `--no-verify` option.  It takes no parameter, and is
> +with `--no-verify` option.  It takes one parameter which is "amend" if
> +`--amend` was used when committing and empty otherwise. It is

This interface change is OK for backwards compatibility, since existing scripts would not look at the arguments (which are always empty currently). And I think it is OK for adding new options in the future, too, because the option is always present (just sometimes as an empty string). Can we make the non-amend option something more verbose than the empty string (like "noamend")? I have two reasons:

  1. It is a bit more obvious when debugging or dumping arguments (e.g.,
     via GIT_TRACE), especially if new options are added after the
     first.
  2. It makes it easier for a script to work on old and new versions of
     git. It sees either "amend" or "noamend" for the two obvious cases,
     and if it sees no argument, then it knows that it does not know
     either way (it is running on an old version of git).
     Technically one can tell the difference in shell between an empty
     string and a missing argument, but it is sufficiently subtle that I
     think "noamend" is a better route.
Show 5 quoted lines
> +# a hook that checks if "amend" is passed as an argument
> +cat > "$HOOK" <<EOF
> +#!/bin/sh
> +test "\$1" = amend
> +EOF

Eric mentioned write_script already (and it would be nice to convert the existing uses in t7503 to use it). You may also want to use "\EOF" to inhibit interpolation in the here-document, which means you do not have to quote variables inside the script.

-Peff
Previous: Eric SunshineNext: Junio C Hamano
Message 3 of 9 in “commit: inform pre-commit if --amend is used”
  1. commit: inform pre-commit if --amend is usedØystein Walle, Nov 24, 2014
  2. Eric SunshineNov 24, 2014
  3. Jeff KingNov 25, 2014
  4. Junio C HamanoNov 25, 2014
  5. Jeff KingNov 25, 2014
  6. Mark LevedahlNov 27, 2014
  7. Jeff KingNov 28, 2014
  8. Mark LevedahlNov 28, 2014
  9. Junio C HamanoDec 1, 2014

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.