Merge branch 'rr/needs-clean-work-tree'
* rr/needs-clean-work-tree: Porcelain scripts: Rewrite cryptic "needs update" error messagemaint
commit
e4663556cf
|
@ -201,10 +201,7 @@ test true = "$rebase" && {
|
||||||
die "updating an unborn branch with changes added to the index"
|
die "updating an unborn branch with changes added to the index"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
git update-index --ignore-submodules --refresh &&
|
require_clean_work_tree "pull with rebase" "Please commit or stash them."
|
||||||
git diff-files --ignore-submodules --quiet &&
|
|
||||||
git diff-index --ignore-submodules --cached --quiet HEAD -- ||
|
|
||||||
die "refusing to pull with rebase: your working tree is not up-to-date"
|
|
||||||
fi
|
fi
|
||||||
oldremoteref= &&
|
oldremoteref= &&
|
||||||
. git-parse-remote &&
|
. git-parse-remote &&
|
||||||
|
|
|
@ -153,14 +153,6 @@ run_pre_rebase_hook () {
|
||||||
fi
|
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"
|
ORIG_REFLOG_ACTION="$GIT_REFLOG_ACTION"
|
||||||
|
|
||||||
|
@ -557,7 +549,7 @@ do_next () {
|
||||||
exit "$status"
|
exit "$status"
|
||||||
fi
|
fi
|
||||||
# Run in subshell because require_clean_work_tree can die.
|
# Run in subshell because require_clean_work_tree can die.
|
||||||
if ! (require_clean_work_tree)
|
if ! (require_clean_work_tree "rebase")
|
||||||
then
|
then
|
||||||
warn "Commit or stash your changes, and then run"
|
warn "Commit or stash your changes, and then run"
|
||||||
warn
|
warn
|
||||||
|
@ -798,7 +790,7 @@ first and then run 'git rebase --continue' again."
|
||||||
|
|
||||||
record_in_rewritten "$(cat "$DOTEST"/stopped-sha)"
|
record_in_rewritten "$(cat "$DOTEST"/stopped-sha)"
|
||||||
|
|
||||||
require_clean_work_tree
|
require_clean_work_tree "rebase"
|
||||||
do_rest
|
do_rest
|
||||||
;;
|
;;
|
||||||
--abort)
|
--abort)
|
||||||
|
@ -896,7 +888,7 @@ first and then run 'git rebase --continue' again."
|
||||||
|
|
||||||
comment_for_reflog start
|
comment_for_reflog start
|
||||||
|
|
||||||
require_clean_work_tree
|
require_clean_work_tree "rebase" "Please commit or stash them."
|
||||||
|
|
||||||
if test ! -z "$1"
|
if test ! -z "$1"
|
||||||
then
|
then
|
||||||
|
|
|
@ -412,19 +412,7 @@ else
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# The tree must be really really clean.
|
require_clean_work_tree "rebase" "Please commit or stash them."
|
||||||
if ! git update-index --ignore-submodules --refresh > /dev/null; then
|
|
||||||
echo >&2 "cannot rebase: you have unstaged changes"
|
|
||||||
git diff-files --name-status -r --ignore-submodules -- >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
diff=$(git diff-index --cached --name-status -r --ignore-submodules HEAD --)
|
|
||||||
case "$diff" in
|
|
||||||
?*) echo >&2 "cannot rebase: your index contains uncommitted changes"
|
|
||||||
echo >&2 "$diff"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test -z "$rebase_root"
|
if test -z "$rebase_root"
|
||||||
then
|
then
|
||||||
|
|
|
@ -145,6 +145,35 @@ require_work_tree () {
|
||||||
die "fatal: $0 cannot be used without a working tree."
|
die "fatal: $0 cannot be used without a working tree."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require_clean_work_tree () {
|
||||||
|
git rev-parse --verify HEAD >/dev/null || exit 1
|
||||||
|
git update-index -q --ignore-submodules --refresh
|
||||||
|
err=0
|
||||||
|
|
||||||
|
if ! git diff-files --quiet --ignore-submodules
|
||||||
|
then
|
||||||
|
echo >&2 "Cannot $1: You have unstaged changes."
|
||||||
|
err=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git diff-index --cached --quiet --ignore-submodules HEAD --
|
||||||
|
then
|
||||||
|
if [ $err = 0 ]
|
||||||
|
then
|
||||||
|
echo >&2 "Cannot $1: Your index contains uncommitted changes."
|
||||||
|
else
|
||||||
|
echo >&2 "Additionally, your index contains uncommitted changes."
|
||||||
|
fi
|
||||||
|
err=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $err = 1 ]
|
||||||
|
then
|
||||||
|
test -n "$2" && echo >&2 "$2"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
get_author_ident_from_commit () {
|
get_author_ident_from_commit () {
|
||||||
pick_author_script='
|
pick_author_script='
|
||||||
/^author /{
|
/^author /{
|
||||||
|
|
Loading…
Reference in New Issue