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

[PATCH] rebase -i: more graceful handling of invalid commands

From
Jan Krüger <jk@jk.gs>
Date
Oct 27, 2009, 12:39 UTC
Message-ID
<20091027133932.60b996c3@perceptron>
In-Reply-To
<40aa078e0910270313j5dc68576v86a3947f0dc7f9f@mail.gmail.com>

Currently, when there is an invalid command, the rest of the line is still treated as if the command had been valid, i.e. rebase -i attempts to produce a patch, using the next argument as a SHA1 name. If there is no next argument or an invalid one, very confusing error messages appear (the line was '.'; path to git-rebase-todo substituted):

Unknown command: . fatal: ambiguous argument 'Please fix this in the file $somefile.': unknown revision or path not in the working tree. Use '--' to separate paths from revisions fatal: Not a valid object name Please fix this in the file $somefile. fatal: bad revision 'Please fix this in the file $somefile.'

Instead, verify the validity of the remaining line and error out earlier if necessary.

Signed-off-by: Jan Krüger <jk@jk.gs>
---
> I recently came over a not-overly-helpful error in git rebase -i, when
> a line got wrapped by the editor so that a part of the commit-message
> was interpreted as a command:
Here is a suggested fix.
 git-rebase--interactive.sh |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index a1879e3..fdd8eb6 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -416,7 +416,12 @@ do_next () {
 		;;
 	*)
 		warn "Unknown command: $command $sha1 $rest"
-		die_with_patch $sha1 "Please fix this in the file $TODO."
+		if git rev-parse --verify -q "$sha" >/dev/null
+		then
+			die_with_patch $sha1 "Please fix this in the file $TODO."
+		else
+			die "Please fix this in the file $TODO."
+		fi
 		;;
 	esac
 	test -s "$TODO" && return
-- 
1.6.5.rc1
Previous: Erik Faye-LundNext: Johannes Schindelin
Message 2 of 12 in “possible usability issue in rebase -i?”
  1. Erik Faye-LundOct 27, 2009
  2. rebase -i: more graceful handling of invalid commandsJan Krüger, Oct 27, 2009
  3. Johannes SchindelinOct 27, 2009
  4. Thomas RastOct 27, 2009
  5. rebase -i: more graceful handling of invalid commandsJan Krüger, Oct 27, 2009
  6. Junio C HamanoOct 28, 2009
  7. BazOct 27, 2009
  8. Erik Faye-LundOct 27, 2009
  9. BazOct 27, 2009
  10. Erik Faye-LundOct 28, 2009
  11. BazOct 28, 2009
  12. Erik Faye-LundOct 28, 2009

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.