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

Re: [PATCH v2 00/14] Sparse checkout

From
Jakub Narebski <jnareb@gmail.com>
Date
Sep 20, 2008, 18:01 UTC
Message-ID
<200809202001.28383.jnareb@gmail.com>
In-Reply-To
<fcaeb9bf0809201033o1e9298a8ob135c68228b77218@mail.gmail.com>
On Sat, 20 Sep 2008, Nguyen Thai Ngoc Duy wrote:
Show 19 quoted lines
> On 9/20/08, Jakub Narebski <jnareb@gmail.com> wrote:
>>>
>>>  - "git clone --path" => "git clone --narrow-path"
>>>  - "git checkout --path" => "git checkout --reset-path"
>>
>>
>> I am not sure about that change, especially the fact that git-clone
>> and git-checkout use differently named options, because those options
>> affect clone only as they affect the checkout part of the clone.  One
>> would think that git-clone = git-init + git-remote add + git-fetch +
>> git-checkout, and that git-clone would simply pass sparse checkout
>> flags to git-checkout.
>>
> 
> Johannes sixt said --path was too generic so I changed the name. Hmm..
> I did not think the same option name for git-checkout and git-clone
> was important, rather worry about people may misunderstand that it is
> "narrow clone" (do not fetch objects outside given paths for all
> history). Maybe "git clone --narrow-checkout" would be better.

True, I didn't thought that git-clone can have option with explicit 'checkout' in a name, for example --checkout-paths, or --checkout-only, or --narrow-checkout (although for me this one doesn't look as it accepts arguments, at least on first glance), or --sparse-checkout (the same).

> "--reset-path", I think, is a better name though. It would express the
> relation compared to --add-path and --remove-path.

I don't like very much '--reset-path' option name, because it is not about 'reset' or 'resetting', but about limiting checkout to specified paths. Unfortunately --include / --exclude looks like are for ignoring files, not marking files with "no-checkout" bit etc.

But I am not native English speaker.

Further proposals: --only ("git checkout --only <pattern>") with --checkout-only as counterpart in git-clone; --limit-to, --sparse.

GNU tar uses --exclude and --exclude-file (with --no-recurse, --no-wildcards, --no-wildcards-match-slash). wget uses --accept and --reject for filename patterns, and --include / --exclude for directories. Neither looks right for sparse checkout in Git.

Show 11 quoted lines
>>>  - New narrow spec (or "sparse patterns" from now) resembles
>>>    .gitignore patterns
>>
>>
>> You mean here that rules for patterns to select which parts of tree
>>  mark as "no-checkout" and/or checkout/leave in checkout are the same
>>  (or nearly the same) as rules for ignoring files, isn't it?
> 
> Yes, almost the same, exceptions include "./" support (this may have
> worked already for .gitignore, I dunno) and backslash escape for
> colons.

'./', or rather '/' support works for gitignore: this is the only way to have pattern which matches only files in given directory, nonrecursively. For example last line in last example on gitignore(5) man page.

>>  BTW I think that the same rules are used in gitattributes, aren't
>>  they?
> 
> They have different implementations. Though the rules may be the same.
Were you able to reuse either one?
Show 6 quoted lines
>>> Nguyễn Thái NgỠc Duy (14):
>>
>>  Errr... what happened here? For me it doesn't look like correct UTF-8
>>  encoding, but perhaps that it is just my news client (Gnus)...
> 
> The cover letter lacks MIME-Version and Content-Type, hmm..

Bug in git-format-patch? IIRC --cover-letter was added quite late, and is quite a new option; some bugs might have been not ironed out yet.

-- 
Jakub Narebski
Poland
Previous: Nguyen Thai Ngoc DuyNext: Uwe Kleine-König
Message 25 of 37 in “Sparse checkout”
  1. 00/14 Sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  2. 01/14 Extend index to save more flagsNguyễn Thái Ngọc Duy, Sep 20, 2008
  3. 02/14 Introduce CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Sep 20, 2008
  4. 03/14 ls-files: add options to support sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  5. 04/14 update-index: refactor mark_valid() in preparation for new optionsNguyễn Thái Ngọc Duy, Sep 20, 2008
  6. 05/14 update-index: add --checkout/--no-checkout to update CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Sep 20, 2008
  7. 06/14 ls-files: Add tests for --sparse and friendsNguyễn Thái Ngọc Duy, Sep 20, 2008
  8. 07/14 Prevent diff machinery from examining worktree outside sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  9. 08/14 checkout_entry(): CE_NO_CHECKOUT on checked out entries.Nguyễn Thái Ngọc Duy, Sep 20, 2008
  10. 09/14 grep: skip files outside sparse checkout areaNguyễn Thái Ngọc Duy, Sep 20, 2008
  11. 10/14 ls-files: support "sparse patterns", used to form sparse checkout areasNguyễn Thái Ngọc Duy, Sep 20, 2008
  12. 11/14 unpack_trees(): add support for sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  13. 12/14 clone: support sparse checkout with --narrow-path optionNguyễn Thái Ngọc Duy, Sep 20, 2008
  14. 13/14 checkout: add new options to support sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  15. 14/14 wt-status: Show orphaned entries in "git status" outputNguyễn Thái Ngọc Duy, Sep 20, 2008
  16. Jakub NarebskiSep 20, 2008
  17. Junio C HamanoSep 20, 2008
  18. Junio C HamanoSep 20, 2008
  19. Nguyen Thai Ngoc DuySep 21, 2008
  20. Jakub NarebskiSep 21, 2008
  21. Santi BéjarSep 20, 2008
  22. Nguyen Thai Ngoc DuySep 20, 2008
  23. Jakub NarebskiSep 20, 2008
  24. Nguyen Thai Ngoc DuySep 20, 2008
  25. Jakub NarebskiSep 20, 2008
  26. Uwe Kleine-KönigSep 20, 2008
  27. Nguyen Thai Ngoc DuySep 20, 2008
  28. Junio C HamanoSep 20, 2008
  29. Nguyen Thai Ngoc DuySep 21, 2008
  30. Jakub NarebskiSep 21, 2008
  31. Nguyen Thai Ngoc DuySep 21, 2008
  32. Jakub NarebskiSep 21, 2008
  33. Santi BéjarSep 23, 2008
  34. Nguyen Thai Ngoc DuySep 23, 2008
  35. Nguyen Thai Ngoc DuySep 26, 2008
  36. Junio C HamanoSep 20, 2008
  37. Santi BéjarSep 23, 2008

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.