提交 ab119032 编写于 作者: J Junio C Hamano

git-rebase -i: clean-up error check codepath.

After replaying a single change, the code performed a number of checks,
but some of them were for sanity checking, failures from which should
make the command abort, and others were checks to see if it should make
a new commit object.  Stringing them together with "&&" was wrong.
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 8ad1065e
......@@ -365,17 +365,26 @@ do
test -d "$DOTEST" || die "No interactive rebase running"
# commit if necessary
git rev-parse --verify HEAD > /dev/null &&
git update-index --refresh &&
git diff-files --quiet &&
! git diff-index --cached --quiet HEAD -- &&
. "$DOTEST"/author-script && {
test ! -f "$DOTEST"/amend || git reset --soft HEAD^
} &&
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE &&
if ! git commit --no-verify -F "$DOTEST"/message -e
# Sanity check
git rev-parse --verify HEAD >/dev/null ||
die "Cannot read HEAD"
git update-index --refresh && git diff-files --quiet ||
die "Working tree is dirty"
# do we have anything to commit?
if git diff-index --cached --quiet HEAD --
then
: Nothing to commit -- skip this
else
. "$DOTEST"/author-script ||
die "Cannot find the author identity"
if test -f "$DOTEST"/amend
then
git reset --soft HEAD^ ||
die "Cannot rewind the HEAD"
fi
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE &&
git commit --no-verify -F "$DOTEST"/message -e ||
die "Could not commit staged changes."
fi
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册