git am: ignore dirty submodules

This fixes a rebase in the presence of dirty submodules. This is
orthogonal to the application of patches changing submodules.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2010-05-29 21:50:11 +02:00
parent 8cb21402af
commit 033c0b9743

View File

@@ -513,7 +513,8 @@ case "$resolved" in
'')
files=$(git ls-files) ;;
?*)
files=$(git diff-index --cached --name-only HEAD --) ;;
files=$(git diff-index --ignore-submodules --cached \
--name-only HEAD --) ;;
esac || exit
if test "$files"
then
@@ -682,7 +683,8 @@ do
case "$resolved$interactive" in
tt)
# This is used only for interactive view option.
git diff-index -p --cached HEAD -- >"$dotest/patch"
git diff-index --ignore-submodules -p --cached \
HEAD -- >"$dotest/patch"
;;
esac
esac
@@ -755,7 +757,7 @@ do
# trust what the user has in the index file and the
# working tree.
resolved=
git diff-index --quiet --cached HEAD -- && {
git diff-index --ignore-submodules --quiet --cached HEAD -- && {
echo "No changes - did you forget to use 'git add'?"
echo "If there is nothing left to stage, chances are that something else"
echo "already introduced the same changes; you might want to skip this patch."
@@ -779,7 +781,8 @@ do
then
# Applying the patch to an earlier tree and merging the
# result may have produced the same tree as ours.
git diff-index --quiet --cached HEAD -- && {
git diff-index --ignore-submodules --quiet --cached \
HEAD -- && {
say No changes -- Patch already applied.
go_next
continue