1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-09 01:16:11 +02:00

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:
Jeff King 2008-12-10 04:25:19 -05:00 committed by Junio C Hamano
parent 71fe945131
commit 07e62b733f

View File

@ -332,11 +332,14 @@ else
fi
# 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 --)
case "$diff" in
?*) echo "cannot rebase: your index is not up-to-date"
echo "$diff"
?*) echo >&2 "cannot rebase: your index contains uncommitted changes"
echo >&2 "$diff"
exit 1
;;
esac