Browse Source

Merge branch 'bc/submodule-status-ignored'

* bc/submodule-status-ignored:
  Improve documentation concerning the status.submodulesummary setting
  submodule: don't print status output with ignore=all
  submodule: fix confusing variable name
maint
Jonathan Nieder 11 years ago
parent
commit
5636a20070
  1. 12
      Documentation/config.txt
  2. 6
      Documentation/diff-config.txt
  3. 8
      Documentation/git-status.txt
  4. 3
      Documentation/gitmodules.txt
  5. 15
      git-submodule.sh
  6. 18
      t/t7401-submodule-summary.sh
  7. 4
      t/t7508-status.sh

12
Documentation/config.txt

@ -2214,7 +2214,14 @@ status.submodulesummary:: @@ -2214,7 +2214,14 @@ status.submodulesummary::
If this is set to a non zero number or true (identical to -1 or an
unlimited number), the submodule summary will be enabled and a
summary of commits for modified submodules will be shown (see
--summary-limit option of linkgit:git-submodule[1]).
--summary-limit option of linkgit:git-submodule[1]). Please note
that the summary output command will be suppressed for all
submodules when `diff.ignoreSubmodules` is set to 'all' or only
for those submodules where `submodule.<name>.ignore=all`. To
also view the summary for ignored submodules you can either use
the --ignore-submodules=dirty command line option or the 'git
submodule summary' command, which shows a similar output but does
not honor these settings.

submodule.<name>.path::
submodule.<name>.url::
@ -2249,7 +2256,8 @@ submodule.<name>.ignore:: @@ -2249,7 +2256,8 @@ submodule.<name>.ignore::
submodules that have untracked files in their work tree as changed.
This setting overrides any setting made in .gitmodules for this submodule,
both settings can be overridden on the command line by using the
"--ignore-submodules" option.
"--ignore-submodules" option. The 'git submodule' commands are not
affected by this setting.

tar.umask::
This variable can be used to restrict the permission bits of

6
Documentation/diff-config.txt

@ -73,7 +73,11 @@ diff.ignoreSubmodules:: @@ -73,7 +73,11 @@ diff.ignoreSubmodules::
Sets the default value of --ignore-submodules. Note that this
affects only 'git diff' Porcelain, and not lower level 'diff'
commands such as 'git diff-files'. 'git checkout' also honors
this setting when reporting uncommitted changes.
this setting when reporting uncommitted changes. Setting it to
'all' disables the submodule summary normally shown by 'git commit'
and 'git status' when 'status.submodulesummary' is set unless it is
overridden by using the --ignore-submodules command line option.
The 'git submodule' commands are not affected by this setting.

diff.mnemonicprefix::
If set, 'git diff' uses a prefix pair that is different from the

8
Documentation/git-status.txt

@ -210,7 +210,13 @@ directory. @@ -210,7 +210,13 @@ directory.
If `status.submodulesummary` is set to a non zero number or true (identical
to -1 or an unlimited number), the submodule summary will be enabled for
the long format and a summary of commits for modified submodules will be
shown (see --summary-limit option of linkgit:git-submodule[1]).
shown (see --summary-limit option of linkgit:git-submodule[1]). Please note
that the summary output from the status command will be suppressed for all
submodules when `diff.ignoreSubmodules` is set to 'all' or only for those
submodules where `submodule.<name>.ignore=all`. To also view the summary for
ignored submodules you can either use the --ignore-submodules=dirty command
line option or the 'git submodule summary' command, which shows a similar
output but does not honor these settings.

SEE ALSO
--------

3
Documentation/gitmodules.txt

@ -75,7 +75,8 @@ submodule.<name>.ignore:: @@ -75,7 +75,8 @@ submodule.<name>.ignore::
the superproject, the setting there will override the one found in
.gitmodules.
Both settings can be overridden on the command line by using the
"--ignore-submodule" option.
"--ignore-submodule" option. The 'git submodule' commands are not
affected by this setting.


EXAMPLES

15
git-submodule.sh

@ -1032,13 +1032,20 @@ cmd_summary() { @@ -1032,13 +1032,20 @@ cmd_summary() {
# Get modified modules cared by user
modules=$(git $diff_cmd $cached --ignore-submodules=dirty --raw $head -- "$@" |
sane_egrep '^:([0-7]* )?160000' |
while read mod_src mod_dst sha1_src sha1_dst status name
while read mod_src mod_dst sha1_src sha1_dst status sm_path
do
# Always show modules deleted or type-changed (blob<->module)
test $status = D -o $status = T && echo "$name" && continue
test $status = D -o $status = T && echo "$sm_path" && continue
# Respect the ignore setting for --for-status.
if test -n "$for_status"
then
name=$(module_name "$sm_path")
ignore_config=$(get_submodule_config "$name" ignore none)
test $status != A -a $ignore_config = all && continue
fi
# Also show added or modified modules which are checked out
GIT_DIR="$name/.git" git-rev-parse --git-dir >/dev/null 2>&1 &&
echo "$name"
GIT_DIR="$sm_path/.git" git-rev-parse --git-dir >/dev/null 2>&1 &&
echo "$sm_path"
done
)


18
t/t7401-submodule-summary.sh

@ -104,6 +104,24 @@ EOF @@ -104,6 +104,24 @@ EOF
test_cmp expected actual
"

test_expect_success 'no ignore=all setting has any effect' "
git config -f .gitmodules submodule.sm1.path sm1 &&
git config -f .gitmodules submodule.sm1.ignore all &&
git config submodule.sm1.ignore all &&
git config diff.ignoreSubmodules all &&
git submodule summary >actual &&
cat >expected <<-EOF &&
* sm1 $head1...$head2 (1):
> Add foo3

EOF
test_cmp expected actual &&
git config --unset diff.ignoreSubmodules &&
git config --remove-section submodule.sm1 &&
git config -f .gitmodules --remove-section submodule.sm1
"


commit_file sm1 &&
head3=$(
cd sm1 &&

4
t/t7508-status.sh

@ -1380,7 +1380,7 @@ EOF @@ -1380,7 +1380,7 @@ EOF
test_i18ncmp expect output
'

test_expect_failure '.gitmodules ignore=all suppresses submodule summary' '
test_expect_success '.gitmodules ignore=all suppresses submodule summary' '
git config --add -f .gitmodules submodule.subname.ignore all &&
git config --add -f .gitmodules submodule.subname.path sm &&
git status > output &&
@ -1388,7 +1388,7 @@ test_expect_failure '.gitmodules ignore=all suppresses submodule summary' ' @@ -1388,7 +1388,7 @@ test_expect_failure '.gitmodules ignore=all suppresses submodule summary' '
git config -f .gitmodules --remove-section submodule.subname
'

test_expect_failure '.git/config ignore=all suppresses submodule summary' '
test_expect_success '.git/config ignore=all suppresses submodule summary' '
git config --add -f .gitmodules submodule.subname.ignore none &&
git config --add -f .gitmodules submodule.subname.path sm &&
git config --add submodule.subname.ignore all &&

Loading…
Cancel
Save