Code

Add the 'diff.ignoreSubmodules' config setting
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 5 Aug 2010 08:49:55 +0000 (10:49 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Aug 2010 16:11:50 +0000 (09:11 -0700)
commitbe4f2b408e5a00d123a0ecb04b0c6c48be71dfa1
tree500bc5a6661108fe40347f0b1f38336977790f4e
parent302ad7a9930a34413418b6436f96826070367647
Add the 'diff.ignoreSubmodules' config setting

When you have a lot of submodules checked out, the time penalty to check
for dirty submodules can easily imply a multiplication of the total time
by the factor 20. This makes the difference between almost instantaneous
(< 2 seconds) and unbearably slow (> 50 seconds) here, since the disk
caches are constantly overloaded.

To this end, the submodule.*.ignore config option was introduced, but it
is per-submodule.

This commit introduces a global config setting to set a default
(porcelain) value for the --ignore-submodules option, keeping the
default at 'none'. It can be overridden by the submodule.*.ignore
setting and by the --ignore-submodules option.

Incidentally, this commit fixes an issue with the overriding logic:
multiple --ignore-submodules options would not clear the previously
set flags.

While at it, fix a typo in the documentation for submodule.*.ignore.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
diff.c
submodule.c