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 e40ee31109
commit 587a406c4b

View file

@ -557,7 +557,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
@ -726,7 +727,8 @@ To restore the original branch and stop patching run \"\$cmdline --abort\"."
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
@ -802,7 +804,7 @@ To restore the original branch and stop patching run \"\$cmdline --abort\"."
# 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 -- && {
gettextln "No changes - did you forget to use 'git add'?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch."
@ -826,7 +828,8 @@ did you forget to use 'git add'?"
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 "$(gettext "No changes -- Patch already applied.")"
go_next
continue