From 5f268c784a7f4979bda85a07da8e46c20a77d5b6 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Sat, 29 May 2010 21:50:11 +0200 Subject: [PATCH] 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 --- git-am.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/git-am.sh b/git-am.sh index 463c741dfc..038446d7a8 100755 --- a/git-am.sh +++ b/git-am.sh @@ -517,7 +517,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 @@ -686,7 +687,8 @@ To restore the original branch and stop patching run \"\$cmdline --abort\"."; ec 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 @@ -762,7 +764,7 @@ To restore the original branch and stop patching run \"\$cmdline --abort\"."; ec # 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 -- && { gettext "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."; echo @@ -786,7 +788,8 @@ did you forget to use 'git add'?"; echo 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