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

Re: [PATCH] git submodule: add submodules with git add -f <path>

From
Jens Lehmann <jens.lehmann@web.de>
Date
Jul 6, 2010, 21:51 UTC
Message-ID
<4C33A552.5060008@web.de>
In-Reply-To
<7vmxu572w5.fsf@alter.siamese.dyndns.org>
Am 06.07.2010 04:36, schrieb Junio C Hamano:
Show 6 quoted lines
> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
> 
>> Resubmitting this as a non-RFC.
> 
> I don't recall any negative nor supporting discussion on this one.  Will
> queue in 'pu' to see if people who do care about submodules complain.
First: I think this patch fixes a bug. Without it "git submodule add"
leaves the work tree in an inconsistent state when either .gitmodules
or the submodule path are ignored: the submodule is checked out and
populated but the path and/or a new .gitmodules file is not added to
the index. And even worse: The advice of the failed "git add" called
from the script that using "-f" might help is misleading here, as
"git submodule add" doesn't know this option.

But while I think adding the --force option to the "git add .gitmodules" makes perfect sense (as the submodule can't be successfully added until it is recorded in this file and there is really no point in ignoring .gitmodules when you decide to use submodules), I'm not so sure about what to do when the submodule path itself is ignored.

I see two possible behaviors here:
a) We just ignore .gitignore and add the submodule anyways (which is
   what this patch does)
b) We do the same a "git add <ignored file>" does: Print an error
   message, maybe even tell the user to use a - still to be added -
   "--force" (or "-f") option and exit. But without checking out the
   submodule first nor adding or changing .gitmodules.

IMHO b) is more consistent with the current behavior of "git add". And when you later decide that the submodules files should live in the superproject and you drop the submodule, the then probably still present entry in .gitignore might really shoot you in the foot when you add new files there and they won't show up because they are still ignored.

What do others think?
Previous: Junio C HamanoNext: Ævar Arnfjörð Bjarmason
Message 4 of 10 in “git submodule: add submodules with git add -f <path>”
  1. git submodule: add submodules with git add -f <path>Ævar Arnfjörð Bjarmason, Jul 2, 2010
  2. git submodule: add submodules with git add -f <path>Ævar Arnfjörð Bjarmason, Jul 5, 2010
  3. Junio C HamanoJul 6, 2010
  4. Jens LehmannJul 6, 2010
  5. Ævar Arnfjörð BjarmasonJul 6, 2010
  6. git add: Add the "--ignore-missing" option for the dry runJens Lehmann, Jul 9, 2010
  7. Junio C HamanoJul 12, 2010
  8. git submodule add: Require the new --force option to add ignored pathsJens Lehmann, Jul 17, 2010
  9. git submodule add: Remove old docs about implicit -fÆvar Arnfjörð Bjarmason, Jul 17, 2010
  10. Jens LehmannJul 17, 2010

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.