@matheusbsbs / matheus-bagliano / commits / f1be316ada
Fork 0

rebase -i: more graceful handling of invalid commands

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> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jan Krüger committed Oct 27, 2009 at 15:58 UTC f1be316ada93158507c315ee7948bb9e6007eb91
1 file changed +6 -1
git-rebase--interactive.sh
+6 -1
@@ -408,7 +408,12 @@ do_next () {
408 ;;
409 *)
410 warn "Unknown command: $command $sha1 $rest"
411 - die_with_patch $sha1 "Please fix this in the file $TODO."
411 + if git rev-parse --verify -q "$sha1" >/dev/null
412 + then
413 + die_with_patch $sha1 "Please fix this in the file $TODO."
414 + else
415 + die "Please fix this in the file $TODO."
416 + fi
417 ;;
418 esac
419 test -s "$TODO" && return