threads / discuss / 29651

git-status does not propagate -uall to submodules

Subject: git-status does not propagate -uall to submodules

## tl;dr

2 messages between Feb 17, 2012 and Feb 17, 2012.

replies: 1people: 2as markdown or json

Thomas Rast· Feb 17, 2012, 09:18 UTC · lore
Hi,

While helping with the submodule display on #git I noticed that if you have a submodule with status.showuntrackedfiles=no, and run 'git status -uall' from the superproject, then this does not propagate into the submodule's status. In code:

  $ (cd bar && git config status.showuntrackedfiles)                  
  no                                                                                                 
  $ git ls-files -s                                                   
  100644 926c01b7259c489a422442a8dc5cb5ea7c58f60c 0       .gitmodules                                
  160000 eb5af46e1a938d064c9f7bae9561013654a43316 0       bar                                        
  $ (cd bar && git status -s -unormal)
  ?? otheruntracked                                                                                  
  ?? untracked
  $ git status
  # On branch master
  nothing to commit (working directory clean)

So far that's expected; after all the submodule is configured not to display untracked files. But with -uall:

  $ git status -uall
  # On branch master
  nothing to commit (working directory clean)

Shouldn't the -uall propagate, since the user is explicitly asking for it? That is, the display should summarize what git-status *with the same arguments* would show inside the submodules?

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Jens Lehmann· Feb 17, 2012, 22:11 UTC · re: Thomas Rast · lore

Re: git-status does not propagate -uall to submodules

Am 17.02.2012 10:18, schrieb Thomas Rast:
Show 29 quoted lines
> Hi,
> 
> While helping with the submodule display on #git I noticed that if you
> have a submodule with status.showuntrackedfiles=no, and run 'git status
> -uall' from the superproject, then this does not propagate into the
> submodule's status.  In code:
> 
>   $ (cd bar && git config status.showuntrackedfiles)                  
>   no                                                                                                 
>   $ git ls-files -s                                                   
>   100644 926c01b7259c489a422442a8dc5cb5ea7c58f60c 0       .gitmodules                                
>   160000 eb5af46e1a938d064c9f7bae9561013654a43316 0       bar                                        
>   $ (cd bar && git status -s -unormal)
>   ?? otheruntracked                                                                                  
>   ?? untracked
>   $ git status
>   # On branch master
>   nothing to commit (working directory clean)
> 
> So far that's expected; after all the submodule is configured not to
> display untracked files.  But with -uall:
> 
>   $ git status -uall
>   # On branch master
>   nothing to commit (working directory clean)
> 
> Shouldn't the -uall propagate, since the user is explicitly asking for
> it?  That is, the display should summarize what git-status *with the
> same arguments* would show inside the submodules?

Yes, that makes sense. In 3bfc45047 (git status: ignoring untracked files must apply to submodules too) I added that using -uno will propagate into submodules. But -uall (and I suspect -unormal too) should also be passed to the status commands forked inside the submodules (even though in both cases -unormal should suffice as only the presence or absence of untracked files will be shown anyway).

But opposed to -uno, which overrides any diff.ignoreSubmodules or submodule.<name>.ignore settings for the submodules, what should -unormal and -uall do? These options are used to override the status.showuntrackedfiles setting, so I suspect even when these options are given submodules which are configured to ignore untracked files via diff.ignoreSubmodules or submodule.<name>.ignore should still be dropped, right?

← back to recent threads