Porcelain scripts: Rewrite cryptic "needs update" error message

Although Git interally has the facility to differentiate between
porcelain and plubmbing commands and appropriately print errors,
several shell scripts invoke plubming commands triggering cryptic
plumbing errors to be displayed on a porcelain interface. This patch
replaces the "needs update" message in git-pull and git-rebase, when
`git update-index` is run, with a more friendly message.

Reported-by: Joshua Jensen <jjensen@workspacewhiz.com>
Reported-by: Thore Husfeldt <thore.husfeldt@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ramkumar Ramachandra
2010-10-19 20:09:28 +05:30
committed by Junio C Hamano
parent ca209065f3
commit 92c62a3f4f
4 changed files with 34 additions and 28 deletions

View File

@ -153,14 +153,6 @@ run_pre_rebase_hook () {
fi
}
require_clean_work_tree () {
# test if working tree is dirty
git rev-parse --verify HEAD > /dev/null &&
git update-index --ignore-submodules --refresh &&
git diff-files --quiet --ignore-submodules &&
git diff-index --cached --quiet HEAD --ignore-submodules -- ||
die "Working tree is dirty"
}
ORIG_REFLOG_ACTION="$GIT_REFLOG_ACTION"
@ -557,7 +549,7 @@ do_next () {
exit "$status"
fi
# Run in subshell because require_clean_work_tree can die.
if ! (require_clean_work_tree)
if ! (require_clean_work_tree "rebase")
then
warn "Commit or stash your changes, and then run"
warn
@ -768,7 +760,7 @@ first and then run 'git rebase --continue' again."
record_in_rewritten "$(cat "$DOTEST"/stopped-sha)"
require_clean_work_tree
require_clean_work_tree "rebase"
do_rest
;;
--abort)
@ -866,7 +858,7 @@ first and then run 'git rebase --continue' again."
comment_for_reflog start
require_clean_work_tree
require_clean_work_tree "rebase" "Please commit or stash them."
if test ! -z "$1"
then