1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-01-19 11:31:26 +01:00

33217: vcs_info: use --ignore-submodules=dirty with diff/diff-index

This will detect changes to submodules from the superproject's
perspective, e.g. after `git rm submodule`.

>From GIT-DIFF-INDEX(1)/GIT-DIFF(1):

    Using "dirty" ignores all changes to the work tree of submodules,
    only changes to the commits stored in the superproject are shown
    (this was the behavior until 1.7.0).
This commit is contained in:
Daniel Hahler 2014-09-22 16:37:23 +02:00 committed by Frank Terbeck
parent 7c6e267da4
commit 64e2b4426e
2 changed files with 8 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2014-09-22 Daniel Hahler <dhahler@gmail.com>
* 33217: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
vcs_info: use `--ignore-submodules=dirty` with diff/diff-index
2014-09-22 Peter Stephenson <p.stephenson@samsung.com>
* 33208: Tanu Kaskinen:

View file

@ -176,17 +176,17 @@ if (( querystaged || queryunstaged )) && \
[[ "$(${vcs_comm[cmd]} rev-parse --is-inside-work-tree 2> /dev/null)" == 'true' ]] ; then
# Default: off - these are potentially expensive on big repositories
if (( queryunstaged )) ; then
${vcs_comm[cmd]} diff --no-ext-diff --ignore-submodules --quiet --exit-code ||
${vcs_comm[cmd]} diff --no-ext-diff --ignore-submodules=dirty --quiet --exit-code ||
gitunstaged=1
fi
if (( querystaged )) ; then
if ${vcs_comm[cmd]} rev-parse --quiet --verify HEAD &> /dev/null ; then
${vcs_comm[cmd]} diff-index --cached --quiet --ignore-submodules HEAD 2> /dev/null
${vcs_comm[cmd]} diff-index --cached --quiet --ignore-submodules=dirty HEAD 2> /dev/null
(( $? && $? != 128 )) && gitstaged=1
else
# empty repository (no commits yet)
# 4b825dc642cb6eb9a060e54bf8d69288fbee4904 is the git empty tree.
${vcs_comm[cmd]} diff-index --cached --quiet --ignore-submodules 4b825dc642cb6eb9a060e54bf8d69288fbee4904 2>/dev/null
${vcs_comm[cmd]} diff-index --cached --quiet --ignore-submodules=dirty 4b825dc642cb6eb9a060e54bf8d69288fbee4904 2>/dev/null
(( $? && $? != 128 )) && gitstaged=1
fi
fi