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

Re: [PATCH] contrib/git-jump: cat output when not a terminal

From
Junio C Hamano <gitster@pobox.com>
Date
May 10, 2020, 19:38 UTC
Message-ID
<xmqqftc7twaa.fsf@gitster.c.googlers.com>
In-Reply-To
<xmqqk11jtxl3.fsf@gitster.c.googlers.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 27 quoted lines
> Because this is a new feature, instead of breaking existing users
> and forcing them to do something different they did not have to
> (namely, set and export the GIT_JUMP_IGNORE_STDOUT_CHECK environment
> variable), we should instead make this a non-default behaviour and
> those who want it should explicitly opt-in to trigger it, perhaps
> like:
>
>         open_editor() {
>                 if ! test -t 1 && test -n "$GIT_JUMP_AUTO_CAT"
>                 then
>                         cat "$1"
>                 else
>                         editor=`git var GIT_EDITOR`
>                         eval "$editor -q \$1"
>                 fi
>         }
>
> so that existing users won't get affected by this change at all,
> while allowing you and other vim users to set and export the
> environment variable just once.  
>
> Unilaterally breaking, and ignoring when you are told you are
> breaking, possible existing users, without giving them any escape
> hatch, is simply irresponsible, and not something done in this
> project.  But I am sensing that you are not listening to and
> thinking about what you hear before you respond, so I will stop
> spending time on this topic for now, and wait until others chime in.
Well, I lied ;-) 

I somehow doubt that users of vim types "!git jump diff" (or whichever submode they want) from within vim's command prompt; wouldn't they typically wrap the invocation in a vim macro?

If my suspicion is correct, with an opt-in feature like the above (which is designed not to hurt existing users), the vim users can change their macro definition to not just invoke "git jump <whatever>", but invoke "GIT_JUMP_AUTO_CAT=yes git jump <whatever>", i.e. tell "git jump" that you are opting into the "cat the file, instead of launching GIT_EDITOR". So with just a one-time setting, vim (and other similar editor) users would benefit without hurting others.

For that matter, instead of introducing GIT_JUMP_AUTO_CAT, the same mechanism can be used to run "GIT_EDITOR=cat git jump <whatever>", i.e. tell "git jump" that it is expected to run "cat" as its editor, from such a vim macro ;-)

Previous: George BrownNext: George Brown
Message 12 of 21 in “contrib/git-jump: cat output when not a terminal”
  1. contrib/git-jump: cat output when not a terminalGeorge Brown, May 9, 2020
  2. Junio C HamanoMay 9, 2020
  3. George BrownMay 9, 2020
  4. Junio C HamanoMay 9, 2020
  5. George BrownMay 10, 2020
  6. Junio C HamanoMay 10, 2020
  7. George BrownMay 10, 2020
  8. Junio C HamanoMay 10, 2020
  9. George BrownMay 10, 2020
  10. Junio C HamanoMay 10, 2020
  11. George BrownMay 10, 2020
  12. Junio C HamanoMay 10, 2020
  13. George BrownMay 10, 2020
  14. Junio C HamanoMay 11, 2020
  15. Jeff KingMay 11, 2020
  16. Junio C HamanoMay 11, 2020
  17. Jeff KingMay 11, 2020
  18. Re* [PATCH] contrib/git-jump: cat output when not a terminalJunio C Hamano, May 11, 2020
  19. Jeff KingMay 12, 2020
  20. Junio C HamanoMay 12, 2020
  21. Jeff KingMay 13, 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.