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:10 UTC
Message-ID
<xmqqk11jtxl3.fsf@gitster.c.googlers.com>
In-Reply-To
<CAFKec1VGzpxVJV4zak46r_p2gGcw4UanFr7U4U4MSsG7t2A23w@mail.gmail.com>
George Brown <321.george@gmail.com> writes:
> I think with this change all editors can benefit.

I am worried not only about the editors that are launched by git-jump that runs GIT_EDITOR, or the use case where you run git-jump from within your editor. "git jump" that is launched from a process, whose standard output steam is not connected to a terminal, used to spawn the specified editor just fine. Imagine a user wanted to spawn a graphical editor via git-jump from within a GUI script (probably launched from a window manager menu and has no terminal). With git-jump with this patch, such a use will be broken, no? The GIT_EDITOR the user set is totally ignored.

At the very least, we should have an escape hatch to help those this patch is hurting, perhaps like

        open_editor() {
                if ! test -t 1 && test -z "$GIT_JUMP_IGNORE_STDOUT_CHECK"
                then
                        cat "$1"
                else
                        editor=`git var GIT_EDITOR`
                        eval "$editor -q \$1"
                fi
        }

so that at least they can spawn their chosen editor, not "cat", from the tool they have been using.

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.

Previous: George BrownNext: George Brown
Message 10 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.