rebase: improve error messages about dirty state
If you have unstaged changes in your working tree and try to rebase, you will get the cryptic "foo: needs update" message, but nothing else. If you have staged changes, you get "your index is not up-to-date". Let's improve this situation in two ways: - for unstaged changes, let's also tell them we are canceling the rebase, and why (in addition to the "needs update" lines) - for the staged changes case, let's use language that is a little more clear to the user: their index contains uncommitted changes Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
71fe945131
commit
07e62b733f
@ -332,11 +332,14 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# The tree must be really really clean.
|
# The tree must be really really clean.
|
||||||
git update-index --ignore-submodules --refresh || exit
|
if ! git update-index --ignore-submodules --refresh; then
|
||||||
|
echo >&2 "cannot rebase: you have unstaged changes"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
diff=$(git diff-index --cached --name-status -r --ignore-submodules HEAD --)
|
diff=$(git diff-index --cached --name-status -r --ignore-submodules HEAD --)
|
||||||
case "$diff" in
|
case "$diff" in
|
||||||
?*) echo "cannot rebase: your index is not up-to-date"
|
?*) echo >&2 "cannot rebase: your index contains uncommitted changes"
|
||||||
echo "$diff"
|
echo >&2 "$diff"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
Loading…
Reference in New Issue
Block a user