Re: git diff --numstat <branch> always shows dirty submodules
- From
Jens Lehmann <jens.lehmann@web.de>
- Date
- Nov 12, 2011, 20:02 UTC
- Message-ID
- <4EBED0ED.7060005@web.de>
- In-Reply-To
- <j9lsc1$4uf$1@dough.gmane.org>
Am 12.11.2011 14:29, schrieb Gelonida N:
> I recently started using submodules and they behave mostly as I like to.
Good to hear that.
Show 23 quoted lines
> Normally I use diff --numstat<branch> > to check quickly whether I am aligned with another branch or not. > > The (for me) annoying feature of submodules is, that they are always > reported to be different due to files, which are not under git. > > > I type git diff --numstat master > I get > 1 1 mysubmodule > > > Now I check the differences with git diff master mysubmodule > diff --git a/mysubmodule b/mysubmodule > index 1382b73..f4f1f1d 160000 > --- a/mysubmodule > +++ b/mysubmodule > @@ -1 +1 @@ > -Subproject commit xxxxxxxxx > +Subproject commit xxxxxxxxx-dirty > > So the only difference (which I wasn't interested in) is, that the > submodule is dirty.
>
> Is there any quick way flag / helper script / . . . > to show differences between two branches without raising the fact, that > submodules are dirty?
Yes, there is the "--ignore-submodules" command line option and the diff.ignoreSubmodules (which can be set globally and/or per repo) and submodule.<name.>ignore configuration settings. They can be set to "untracked", "dirty" or "all" to control what you want to see.
Did you check areas in the Documentation where you did expect to find them mentioned but they weren't? Then please say so that we can fix that.
>> From a user perspective I don't see why this is reported. > I am not being warned about dirty files in the top level repository
This is so you can't forget to add new files inside the submodule, which can lead to breakage when other people clone the superproject but won't get the new files from the submodule because you didn't commit them there.