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

Re: [PATCH] pathspec: remove check_path_for_gitlink

From
Junio C Hamano <gitster@pobox.com>
Date
May 6, 2016, 07:14 UTC
Message-ID
<xmqq1t5f7j4e.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<CAGZ79kaO+g7Dm5AgdYGADj=pYDLjV-ALGTxrmwrNGUy1NB=tNg@mail.gmail.com>
Stefan Beller <sbeller@google.com> writes:
Show 14 quoted lines
> There are 2 fundamental cases though.
>  (1) The bug we're talking about (as explained in that blog), refers to 2
>     independent repositories, whose work trees are nested
>  (2) You seemed to bring in the notion that the nested repo is considered
>     a submodule of the outer repo, i.e. they have a relationship.
>
> I don't mind (1). It's a neat hack as these 2 repos are totally unrelated
> (except for the working tree in the file system being the same files).
> You could also achieve a similar handling by hardlinking gitk-git/gitk
> and git.git/gitk-git/gitk.
>
> In (2), we have a gitlink, which by definition takes up the whole directory.
> So any file in that directory in the file system which represents the root of
> the submodule should belong to the submodule.

I certainly didn't mean to "bring in the notion" as if it is something entirely alien to the discussion. Before you "git add", it may be a "nested independent" repository, but that is merely a submodule that is untracked, yet to be added. Just like tracked files were once untracked before they got added, these are possible submodules that happened to be not tracked yet.

I do not see there is any difference between the two at all.
If deep/in is a repository yet to be added as a submodule,
    $ git add deep/in/the/tree/is-a-leaf.txt
    $ git add deep/in

in the hypothetical "git add A is equivalent to git -C $(dirname A) add $(basename A)" world should behave the same regardless of the order of these two commands (otherwise the behaviour is way too confusing).

Previous: Stefan BellerNext: Duy Nguyen
Message 10 of 16 in “pathspec: remove check_path_for_gitlink”
  1. pathspec: remove check_path_for_gitlinkStefan Beller, May 5, 2016
  2. Junio C HamanoMay 5, 2016
  3. Stefan BellerMay 5, 2016
  4. Junio C HamanoMay 5, 2016
  5. Stefan BellerMay 5, 2016
  6. Junio C HamanoMay 5, 2016
  7. Stefan BellerMay 6, 2016
  8. Junio C HamanoMay 6, 2016
  9. Stefan BellerMay 6, 2016
  10. Junio C HamanoMay 6, 2016
  11. Duy NguyenMay 6, 2016
  12. Stefan BellerMay 6, 2016
  13. Junio C HamanoMay 6, 2016
  14. Stefan BellerMay 6, 2016
  15. Junio C HamanoMay 6, 2016
  16. Duy NguyenMay 7, 2016

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.