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

Re: [RFC PATCH 00/10] Make submodules work if .gitmodules is not checked out

From
Junio C Hamano <gitster@pobox.com>
Date
May 15, 2018, 04:09 UTC
Message-ID
<xmqq4lj9a7b0.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20180514105823.8378-1-ao2@ao2.it>
Antonio Ospite <ao2@ao2.it> writes:
>   - my git terminology may still be a little off: do "work tree" and
>     "work directory" mean the same thing?
Just on this tangent.  

When we talk about the current working directory of a process returned by getcwd((3) call, we typically spell that word fully (or say $cwd).

We lived without the modern "git worktree" layout for a long time, but there was a hack in contrib/ called "git-new-workdir". This creates something similar (in spirit, not in implementation) to "worktree" in modern Git lingo, but because not many people use the contrib feature (at least there is only few who get confused by it and ask questions publicly, anyway), we do not hear "workdir" very often.

Since very early days of Git, we had "working tree" that is the directory hierarchy that corresponds to what you place in the index, and "Git repository" which is the ".git" directory that has that index. Even though most everybody else was calling it the "working tree", primarily because I was young(er) and (more) stupid, I often called the same thing "work tree", and made things worse by introducing GIT_WORK_TREE environment variable etc. But "working tree" is the official terminology to denote a directory hierarchy that corresponds to (and controlled by) a single index file as opposed to what is in ".git/" directory..

The official term "worktree" came much later, with "git worktree" command. This allow multiple working trees to be associated with a single ".git/" directory. Most of the time "worktree" and "working tree" can be used interchangeably, but we tend to say "working tree" when we have more emphasis on the non-bareness of the repository and talking about checked-out files, and say "worktree" when we are mostly interested in the layout that have more than one working trees associated to a single Git repository. What you get by "git clone", for example, is just a single repository with a single working tree, and nobody sane (other than young(er) and (more) stupid version of me 10 years ago) would call the latter a "worktree" these days, as there is not yet a secondary worktree to contrast it with.

Previous: Stefan Beller
Message 27 of 27 in “Make submodules work if .gitmodules is not checked out”
  1. 00/10 Make submodules work if .gitmodules is not checked outAntonio Ospite, May 14, 2018
  2. 03/10 t7411: be nicer to other tests and really clean things upAntonio Ospite, May 14, 2018
  3. Stefan BellerMay 15, 2018
  4. Antonio OspiteJun 20, 2018
  5. 02/10 submodule: factor out a config_gitmodules_set functionAntonio Ospite, May 14, 2018
  6. Stefan BellerMay 15, 2018
  7. Antonio OspiteJun 20, 2018
  8. 04/10 submodule--helper: add a new 'config' subcommandAntonio Ospite, May 14, 2018
  9. Stefan BellerMay 15, 2018
  10. Antonio OspiteJun 20, 2018
  11. 01/10 config: make config_from_gitmodules generally usefulAntonio Ospite, May 14, 2018
  12. Brandon WilliamsMay 14, 2018
  13. Antonio OspiteJun 20, 2018
  14. Stefan BellerMay 15, 2018
  15. Antonio OspiteJun 20, 2018
  16. Stefan BellerJun 20, 2018
  17. Antonio OspiteJun 21, 2018
  18. Stefan BellerJun 21, 2018
  19. 05/10 submodule: use the 'submodule--helper config' commandAntonio Ospite, May 14, 2018
  20. 06/10 submodule--helper: add a '--stage' option to the 'config' sub commandAntonio Ospite, May 14, 2018
  21. 07/10 submodule: use 'submodule--helper config --stage' to stage .gitmodulesAntonio Ospite, May 14, 2018
  22. 08/10 t7506: cleanup .gitmodules properly before setting up new scenarioAntonio Ospite, May 14, 2018
  23. 10/10 t7415: add new test about using HEAD:.gitmodules from the indexAntonio Ospite, May 14, 2018
  24. 09/10 submodule: support reading .gitmodules even when it's not checked outAntonio Ospite, May 14, 2018
  25. Stefan BellerMay 15, 2018
  26. Stefan BellerMay 15, 2018
  27. Junio C HamanoMay 15, 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.