diff options
author | Jens Lehmann <Jens.Lehmann@web.de> | 2014-04-08 21:36:08 +0200 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2014-06-15 11:35:50 +1000 |
commit | 17f9836c8afc8d4b6d6bb91fd0658df090d75c8f (patch) | |
tree | 59c0ed91aba31be5773da0cf67cc4c2a94404b00 | |
parent | 019e1630ac16f82fa6322869c8dfc3dee029e7ae (diff) | |
download | git-17f9836c8afc8d4b6d6bb91fd0658df090d75c8f.tar.gz git-17f9836c8afc8d4b6d6bb91fd0658df090d75c8f.tar.xz |
gitk: Show staged submodules regardless of ignore config
Currently setting submodule.<name>.ignore and/or diff.ignoreSubmodules to
"all" suppresses all output of submodule changes for gitk. This is really
confusing, as even when the user chooses to record a new commit for an
ignored submodule by adding it manually this change won't show up under
"Local changes checked in to index but not committed".
Fix that by using the '--ignore-submodules=dirty' option for both callers
of "git diff-index --cached" when the underlying git version supports that
option.
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-x | gitk | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -5206,11 +5206,15 @@ proc dohidelocalchanges {} { # spawn off a process to do git diff-index --cached HEAD proc dodiffindex {} { global lserial showlocalchanges vfilelimit curview - global hasworktree + global hasworktree git_version if {!$showlocalchanges || !$hasworktree} return incr lserial - set cmd "|git diff-index --cached HEAD" + if {[package vcompare $git_version "1.7.2"] >= 0} { + set cmd "|git diff-index --cached --ignore-submodules=dirty HEAD" + } else { + set cmd "|git diff-index --cached HEAD" + } if {$vfilelimit($curview) ne {}} { set cmd [concat $cmd -- $vfilelimit($curview)] } @@ -7710,7 +7714,7 @@ proc addtocflist {ids} { } proc diffcmd {ids flags} { - global log_showroot nullid nullid2 + global log_showroot nullid nullid2 git_version set i [lsearch -exact $ids $nullid] set j [lsearch -exact $ids $nullid2] @@ -7731,6 +7735,9 @@ proc diffcmd {ids flags} { } } } elseif {$j >= 0} { + if {[package vcompare $git_version "1.7.2"] >= 0} { + set flags "$flags --ignore-submodules=dirty" + } set cmd [concat | git diff-index --cached $flags] if {[llength $ids] > 1} { # comparing index with specific revision |