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

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

From
Jan Krüger <jk@jk.gs>
Date
Oct 27, 2009, 14:58 UTC
Message-ID
<20091027155814.0de65db5@perceptron>
In-Reply-To
<200910271521.09164.trast@student.ethz.ch>

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>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
Thomas Rast wrote:
> I think you need s/sha/sha1/ here?

Of course. For some reason I forgot testing the code path where the SHA1 is actually valid. Sorry about that.

Dscho's ACK lifted off <http://article.gmane.org/gmane.comp.version-control.git/131341>.

 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 "$sha1" >/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: Thomas RastNext: Junio C Hamano
Message 5 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.