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
committed by Stepan Kasal
parent ec765f62e2
commit e897327f55

View File

@@ -593,7 +593,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
@@ -767,7 +768,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
@@ -843,7 +845,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."
@@ -867,7 +869,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