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

Re: [PATCHv8 0/5] pathspec magic extension to search for attributes

From
Stefan Beller <sbeller@google.com>
Date
May 23, 2016, 18:49 UTC
Message-ID
<CAGZ79kZPPdUK1=GB6fnHP0cJyoM_VYmDj3wizApN5iHdCQCUyg@mail.gmail.com>
In-Reply-To
<CACsJy8CpYmp9t01RSeVY_UAw=zPmhGTY1TZ_p2E2zLuu7LpXhA@mail.gmail.com>
On Sun, May 22, 2016 at 4:45 AM, Duy Nguyen <pclouds@gmail.com> wrote:
Show 8 quoted lines
> On Fri, May 20, 2016 at 4:25 AM, Stefan Beller <sbeller@google.com> wrote:
>>> My take is to pretend sparse checkout does not exist at all and then
>>> go from there ;-)
>
> Hehe.. shameless plug, narrow checkout [1] should be its great
> successor where everything is done right (famous last words). Maybe I
> can convince Stefan to finish that off then I'll finally bring narrow
> clone!
I started reviewing that (see separate email).

So conceptually the narrow checkout is "sparse checkout just for directories" IIUC.

A submodule is treated as a files (sometimes, e.g. diff) and sometimes as a directory (e.g. in the working tree)

Show 16 quoted lines
>
> [1] http://article.gmane.org/gmane.comp.version-control.git/289112
>
>> Using these pathspec attrs are a good example for why we would
>> want to make it more generic. Imagine a future, where more attributes
>> can be codified into pathspecs and this is one of the possibilities:
>>
>>     git clone --sparse=":(exclude,size>5MB,binary)
>>
>> which would not checkout files that are large binary files. We could
>> also extend the protocol (v2 with the capabilities in client speaks first)
>> to transmit such a requirement to the server.
>
> I think you need narrow clone there ;-) It's the first step to have a
> clone with missing directories. I think then we can extend it further
> to exclude (large) files.

But if we only exclude some files we are not having a binary decision for a directory, so narrow checkout doesn't work here?

    git clone --sparse=":(exclude,size>5MB,binary)
would maybe lead to have
  dir/path.c #included
  dir/binary-asset.img # excluded
so it is more a sparse thing than a narrow thing?
Show 12 quoted lines
>
>> Why is sparseness considered bad?
>
> It does not scale well when the worktree gets bigger. It can be slow
> (but this is just a technical problem I haven't spent time on fixing).
> And it does not enable narrow clone (not with lots of hacks, I think I
> did just that in some early iterations).
>
>> If I wanted to just do the submodule only thing, this would be a smaller
>> series, I would guess.
>
> No no no. Do more. Start with narrow checkout. I'll help ;-)

Thanks for the encouragement! How is the interface going to look like for the narrow checkout/clone ? If the UI is supposed to be very similar, we can merge the two concepts and make it one thing.

But if the UI is different enough, we may want to keep it separate as it is not as confusing to the user as we'd think?

What I imagine UI-wise, see http://thread.gmane.org/gmane.comp.version-control.git/295221

Thanks, Stefan

> --
> Duy
Previous: Duy NguyenNext: Duy Nguyen
Message 21 of 22 in “[PATCHv8 0/5] pathspec magic extension to search for attributes”
  1. Stefan BellerMay 19, 2016
  2. 1/5 string list: improve commentStefan Beller, May 19, 2016
  3. Junio C HamanoMay 19, 2016
  4. Stefan BellerMay 19, 2016
  5. 2/5 Documentation: fix a typoStefan Beller, May 19, 2016
  6. 3/5 pathspec: move long magic parsing out of prefix_pathspecStefan Beller, May 19, 2016
  7. 4/5 pathspec: move prefix check out of the inner loopStefan Beller, May 19, 2016
  8. 5/5 pathspec: allow querying for attributesStefan Beller, May 19, 2016
  9. Junio C HamanoMay 19, 2016
  10. Stefan BellerMay 19, 2016
  11. Junio C HamanoMay 19, 2016
  12. Junio C HamanoMay 19, 2016
  13. Junio C HamanoMay 19, 2016
  14. Stefan BellerMay 19, 2016
  15. Junio C HamanoMay 19, 2016
  16. Stefan BellerMay 19, 2016
  17. Junio C HamanoMay 20, 2016
  18. Stefan BellerMay 20, 2016
  19. Junio C HamanoMay 20, 2016
  20. Duy NguyenMay 22, 2016
  21. Stefan BellerMay 23, 2016
  22. Duy NguyenMay 24, 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.