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

Re: [PATCH/resent 0/9] Sparse checkout (first half)

From
SBSanti Béjar <santi@agolina.net>
Date
Oct 1, 2008, 14:38 UTC
Message-ID
<adf1fd3d0810010738j21a6432foef3758fc7ed1cb1f@mail.gmail.com>
In-Reply-To
<fcaeb9bf0810010509m4d2045e4qcc2a887c180a787@mail.gmail.com>
On Wed, Oct 1, 2008 at 2:09 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
Show 12 quoted lines
> On 10/1/08, Santi Béjar <santi@agolina.net> wrote:
>> On Wed, Oct 1, 2008 at 12:20 PM, Santi Béjar <santi@agolina.net> wrote:
>>  > Not in this half but I've seen that you added a --default-sparse flag
>>  > to "git clone". I think it is useless as mostly always the one given
>>  > in -sparse-checkout should be used.
>>
>>
>> To be more precise, whenever you do "git clone --sparse-checkout" you
>>  will want it to be the default sparse pattern.
>
> Yes, if only the default pattern gets updated properly when you update
> your checkout area.

I don't parse this sentence, but I cannot see the connection between the default sparse pattern for _clone_ and updating it or the working area.

> If "git clone --sparse-checkout" makes the default
> pattern, then "git checkout --reset-sparse" should reset the default
> pattern as well.
Makes sense.
> The hard part is how to update default pattern with
> --include-sparse and --exclude-sparse.
Maybe you could let the core.defaultsparse be defined multiple times.
[core]
        defaultsparse = Documentation/*
        defaultsparse = t/*
        defaultsparse = !t/*svn*
equivalent to
[core]
        defaultsparse = Documentation/*:t/*:!t/*svn*
but it moves the complexity to the parsing of the config.
> Also, people can use "git
> update-index" to update checkout area, which should not touch default
> pattern at all.
I would prefer having a --not-update-sparse-pattern.

The most common workflow should be the most straightforward. The most common use-case would be somebody working _only_ in some subdirectory (say Documentation), then what s/he normally does is:

1) cloning and default sparse chechout:
  $ git clone --sparse-checkout=Documentation/* ...
  or within an existing wd
  $ git checkout --reset-sparse=Documentation/* ...
  (maybe just --sparse?)
2) Work normally inside the Documentation directory...
3) Abort a merge with conflicts outside the sparse area:
  $ git reset --hard ORIG_HEAD)
  <Now there are files outside the default sparse area>
  $ git checkout --reset-sparse # with --sparse to set the sparse pattern

Including/excluding more paths in the default sparse checkout is not something you would do normally, but I think it makes sense to add them to the default pattern.

Please correct me if you think there are other use-cases, or more things in my use-case.

> Maybe just throw a warning when default pattern no
> longer matches the checkout area, then let them decide.
Sure, and inform in the "git status" that you are in a sparse checkout.

Best regards, Santi

Previous: Nguyen Thai Ngoc DuyNext: Santi Béjar
Message 22 of 23 in “Sparse checkout (first half)”
  1. 0/9 Sparse checkout (first half)Nguyễn Thái Ngọc Duy, Oct 1, 2008
  2. 1/9 Extend index to save more flagsNguyễn Thái Ngọc Duy, Oct 1, 2008
  3. 2/9 Introduce CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Oct 1, 2008
  4. 3/9 ls-files: add options to support sparse checkoutNguyễn Thái Ngọc Duy, Oct 1, 2008
  5. 4/9 update-index: refactor mark_valid() in preparation for new optionsNguyễn Thái Ngọc Duy, Oct 1, 2008
  6. 5/9 update-index: add --checkout/--no-checkout to update CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Oct 1, 2008
  7. 6/9 ls-files: Add tests for --sparse and friendsNguyễn Thái Ngọc Duy, Oct 1, 2008
  8. 7/9 Prevent diff machinery from examining worktree outside sparse checkoutNguyễn Thái Ngọc Duy, Oct 1, 2008
  9. 8/9 checkout_entry(): CE_NO_CHECKOUT on checked out entries.Nguyễn Thái Ngọc Duy, Oct 1, 2008
  10. 9/9 grep: skip files outside sparse checkout areaNguyễn Thái Ngọc Duy, Oct 1, 2008
  11. Jeff KingNov 18, 2008
  12. Junio C HamanoNov 18, 2008
  13. Junio C HamanoNov 19, 2008
  14. Jeff KingNov 19, 2008
  15. Nguyen Thai Ngoc DuyNov 20, 2008
  16. Jeff KingNov 20, 2008
  17. Nguyen Thai Ngoc DuyNov 20, 2008
  18. Junio C HamanoNov 20, 2008
  19. Santi BéjarOct 1, 2008
  20. Santi BéjarOct 1, 2008
  21. Nguyen Thai Ngoc DuyOct 1, 2008
  22. Santi BéjarOct 1, 2008
  23. Santi BéjarOct 2, 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.