git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git add --all does not respect submodule.<name>.ignore

From
Stefan Beller <sbeller@google.com>
Date
Jan 30, 2018, 21:56 UTC
Message-ID
<CAGZ79kYBhBbn3vs2pHGuVzBo79EjUVmUR4r2z5GexNFOVxfv7g@mail.gmail.com>
In-Reply-To
<CAMZgS+GT8pSx8rDy1KmzFV3LObA_bAkw25LMz5Oodb88QOXY5A@mail.gmail.com>

On Tue, Jan 30, 2018 at 12:25 PM, Michael Scott-Nelson <mscottnelson@gmail.com> wrote:

Show 5 quoted lines
> Giving a submodule "ignore=all" or "ignore=dirty" in .gitmodule
> successfully removes that module from `git status` queries. However,
> these same diffs are automatically added by git-add, eg `git add .` or
> `git add --all` adds the submodules that we want ignored. This seems
> inconsistent and confusing.

My prime suspect for this change would be https://github.com/git/git/commit/5556808690ea245708fb80383be5c1afee2fb3eb

Show 7 quoted lines
> Workflow reason:
> We want to be able to have supers and subs checked-out, make changes
> to both, but only update the SHA-1 pointer from super to sub when
> explicitly forced to do so, eg `git add -f subName`. This workflow
> prevents continuous merge conflicts from clashing SHA-1 pointers while
> still allowing `git add --all`, allowing a sort of middle ground
> between submodules and an untracked library.

For that you want to set the ignore flag locally in .git/config instead of .gitmodules. The .gitmodules seems like a convenient place to "share submodule config", but that is a slippery slope and I think that was a mistake by the project.

(If you control the environment, you could also put the ignore flags into the system wide config)

> Teaching git-add about submodule.ignore and/or teaching .gitignore
> about submodules would be awesome.

I wonder if we can address this issue with even more config options. (sounds bad, but is the first thought I have)

> Also experimented with `git update-index --assume-unchanged subName`,
> but I believe that it does not get committed and besides also does not
> seem to have a way to `git add -f`.

The assume-unchanged bit is a performance optimisation for powerusers, but its documentation words it in a less dangerous way, such that it sounds as if it is a UX feature instead of a performance thing. I'd stay away from that know.

Stefan
Previous: Michael Scott-NelsonNext: Jacob Keller
Message 2 of 3 in “git add --all does not respect submodule.<name>.ignore”
  1. Michael Scott-NelsonJan 30, 2018
  2. Stefan BellerJan 30, 2018
  3. Jacob KellerJan 30, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.