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 11, 2020, 16:46 UTC
Message-ID
<xmqqy2pyqv11.fsf_-_@gitster.c.googlers.com>
In-Reply-To
<20200511154226.GC1415@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 12 quoted lines
> On Mon, May 11, 2020 at 08:36:05AM -0700, Junio C Hamano wrote:
>
>> > So I'm OK to leave the status quo and let people use the GIT_EDITOR
>> > solution in this instance. But I'd also be happy to take a patch for
>> > "--no-editor" or similar if somebody wants to work it up.
>> 
>> I actually would support --no-editor.  One thing nobody noticed so
>> far is that "git-jump" is only compatible with editors that support
>> the "-q" option from the command line, and "cat" is not among them.
>
> Oh, good point. GIT_EDITOR='cat -- 2>/dev/null' works, but is rather
> obscure. :)
Lest we all forget...
-- >8 --
Subject: git-jump: just show the list with the "--no-editor" option

The "git jump" script (in contrib/) creates a list of interesting places to be visited in an editor, and then open the editor to visit the place. Some editors, however, can read the list directly and use it to visit these places (e.g. vim's quickfix list, or emacs's find-grep/compilation buffer) and do not want "git jump" to invoke a separate editor.

Users can _almost_ do this already by setting GIT_EDITOR to "cat", except that "git jump" assumes that the editor it spawns support a "-q" option from the command line, and unfortunately "cat" is not among such editors.

Teach it the "--no-editor" option, which tells the command to show the list it generated to its standard output.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 contrib/git-jump/git-jump | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/contrib/git-jump/git-jump b/contrib/git-jump/git-jump
index 931b0fe3a9..26a7159053 100755
--- a/contrib/git-jump/git-jump
+++ b/contrib/git-jump/git-jump
@@ -2,7 +2,7 @@
 
 usage() {
 	cat <<\EOF
-usage: git jump <mode> [<args>]
+usage: git jump [--no-editor] <mode> [<args>]
 
 Jump to interesting elements in an editor.
 The <mode> parameter is one of:
@@ -64,6 +64,18 @@ mode_ws() {
 	git diff --check "$@"
 }
 
+edit=yes
+
+while	case "$#,$1" in
+	0,*) break ;;
+	*,--no-editor) edit=no ;;
+	*,--*) usage >&2; exit 1 ;;
+	*) break ;;
+	esac
+do
+	shift
+done
+
 if test $# -lt 1; then
 	usage >&2
 	exit 1
@@ -75,4 +87,9 @@ tmp=`mktemp -t git-jump.XXXXXX` || exit 1
 type "mode_$mode" >/dev/null 2>&1 || { usage >&2; exit 1; }
 "mode_$mode" "$@" >"$tmp"
 test -s "$tmp" || exit 0
-open_editor "$tmp"
+
+case "$edit" in
+yes)	open_editor "$tmp" ;;
+no)	cat "$tmp" ;;
+esac
+
Previous: Jeff KingNext: Jeff King
Message 18 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.