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:
Johannes Schindelin
2008-05-14 18:03:59 +01:00
committed by Junio C Hamano
parent 5fdeacb0ca
commit 6848d58c60
4 changed files with 105 additions and 12 deletions

View File

@ -60,7 +60,7 @@ continue_merge () {
fi
cmt=`cat "$dotest/current"`
if ! git diff-index --quiet HEAD --
if ! git diff-index --quiet --ignore-submodules HEAD --
then
if ! git commit --no-verify -C "$cmt"
then
@ -150,7 +150,7 @@ while test $# != 0
do
case "$1" in
--continue)
git diff-files --quiet || {
git diff-files --quiet --ignore-submodules || {
echo "You must edit all merge conflicts and then"
echo "mark them as resolved using git add"
exit 1
@ -282,8 +282,8 @@ else
fi
# The tree must be really really clean.
git update-index --refresh || exit
diff=$(git diff-index --cached --name-status -r HEAD --)
git update-index --ignore-submodules --refresh || exit
diff=$(git diff-index --cached --name-status -r --ignore-submodules HEAD --)
case "$diff" in
?*) echo "cannot rebase: your index is not up-to-date"
echo "$diff"