Ignore dirty submodule states during rebase and stash
When rebasing or stashing, chances are that you do not care about dirty submodules, since they are not updated by those actions anyway. So ignore the submodules' states. Note: the submodule states -- as committed in the superproject -- will still be stashed and rebased, it is _just_ the state of the submodule in the working tree which is ignored. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
5fdeacb0ca
commit
6848d58c60
@ -56,9 +56,9 @@ output () {
|
||||
require_clean_work_tree () {
|
||||
# test if working tree is dirty
|
||||
git rev-parse --verify HEAD > /dev/null &&
|
||||
git update-index --refresh &&
|
||||
git diff-files --quiet &&
|
||||
git diff-index --cached --quiet HEAD -- ||
|
||||
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"
|
||||
}
|
||||
|
||||
@ -377,11 +377,12 @@ do
|
||||
# Sanity check
|
||||
git rev-parse --verify HEAD >/dev/null ||
|
||||
die "Cannot read HEAD"
|
||||
git update-index --refresh && git diff-files --quiet ||
|
||||
git update-index --ignore-submodules --refresh &&
|
||||
git diff-files --quiet --ignore-submodules ||
|
||||
die "Working tree is dirty"
|
||||
|
||||
# do we have anything to commit?
|
||||
if git diff-index --cached --quiet HEAD --
|
||||
if git diff-index --cached --quiet --ignore-submodules HEAD --
|
||||
then
|
||||
: Nothing to commit -- skip this
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user