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

Re: [PATCH 05/16] ls-files: add --narrow-checkout option to "will checkout" entries

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 15, 2008, 20:20 UTC
Message-ID
<7v3ak1b1q7.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<m34p4io8vt.fsf@localhost.localdomain>
Jakub Narebski <jnareb@gmail.com> writes:
Show 15 quoted lines
>> @@ -72,6 +73,11 @@ OPTIONS
>>  	to file/directory conflicts for checkout-index to
>>  	succeed.
>>  
>> +--narrow-checkout::
>> +	When narrow checkout is being used, this option together with other
>> +	index-based selection options like --cached or --stage, only narrowed
>> +	portion will be printed out.
>> +
>
> I would rather say, that if git-ls-files is requested to show index
> content (by using selection options like --cached or --stage), then
> by default it shows all entries, also those marked "no checkout".
> With this option git-ls-files would show only files that would get
> checked out.

ls-files is a very low-level interrogator, and I have this queasy feeling in the stomach if it suddenly stopped showing half of the index without explicitly asked to with an option like this. If somebody iterates over ls-files output (with or without pathspecs), most often it would be to do something interesting on the work tree files that correspond to these paths, and for that use case it would make sense to have a mode that shows only the paths marked for checkout. But unless you can prove that "most often" above is "100%", you risk breaking somebody's script. Maybe you are doing something similar [*1*] to the index-filter feature of filter-branch, starting from the current index that has no-checkout marks in its entries, and it wants to know all the paths in the index. Who knows?

[Footnote]

*1* filter-branch happens to start with an empty index and does not know about the new 'narrow checkout' feature, so it is Ok, but it is plausible as an optimization for it to prime the initial index from the current "real" index, which may have the no-checkout marks.

Previous: Jakub NarebskiNext: Jakub Narebski
Message 34 of 35 in “Narrow/Partial/Sparse checkout”
  1. 00/16 Narrow/Partial/Sparse checkoutNguyễn Thái Ngọc Duy, Sep 14, 2008
  2. 01/16 Extend index to save more flagsNguyễn Thái Ngọc Duy, Sep 14, 2008
  3. 02/16 Introduce CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Sep 14, 2008
  4. 03/16 update-index: refactor mark_valid() in preparation for new optionsNguyễn Thái Ngọc Duy, Sep 14, 2008
  5. 04/16 update-index: add --checkout/--no-checkout to update CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Sep 14, 2008
  6. 05/16 ls-files: add --narrow-checkout option to "will checkout" entriesNguyễn Thái Ngọc Duy, Sep 14, 2008
  7. 06/16 Add tests for updating no-checkout entries in indexNguyễn Thái Ngọc Duy, Sep 14, 2008
  8. 07/16 Prevent diff machinery from examining worktree outside narrow checkoutNguyễn Thái Ngọc Duy, Sep 14, 2008
  9. 08/16 checkout_entry(): CE_NO_CHECKOUT on checked out entries.Nguyễn Thái Ngọc Duy, Sep 14, 2008
  10. 09/16 ls-files: apply --deleted on narrow area onlyNguyễn Thái Ngọc Duy, Sep 14, 2008
  11. 10/16 grep: skip files that have not been checked outNguyễn Thái Ngọc Duy, Sep 14, 2008
  12. 11/16 unpack_trees(): add support for narrow checkoutNguyễn Thái Ngọc Duy, Sep 14, 2008
  13. 12/16 narrow spec: put '+' before a spec will change semantic of '*'Nguyễn Thái Ngọc Duy, Sep 14, 2008
  14. 13/16 ls-files: add --narrow-match=spec option for testing narrow matchingNguyễn Thái Ngọc Duy, Sep 14, 2008
  15. 14/16 clone: support narrow checkout with --path optionNguyễn Thái Ngọc Duy, Sep 14, 2008
  16. 15/16 checkout: add new options to support narrow checkoutNguyễn Thái Ngọc Duy, Sep 14, 2008
  17. 16/16 ls-files: add --overlay optionNguyễn Thái Ngọc Duy, Sep 14, 2008
  18. Jakub NarebskiSep 14, 2008
  19. Junio C HamanoSep 15, 2008
  20. Nguyen Thai Ngoc DuySep 16, 2008
  21. Junio C HamanoSep 16, 2008
  22. Jakub NarebskiSep 14, 2008
  23. BazSep 16, 2008
  24. Johannes SixtSep 16, 2008
  25. Nguyen Thai Ngoc DuySep 16, 2008
  26. Jakub NarebskiSep 14, 2008
  27. Junio C HamanoSep 15, 2008
  28. Jakub NarebskiSep 14, 2008
  29. Junio C HamanoSep 15, 2008
  30. Nguyen Thai Ngoc DuySep 16, 2008
  31. Jakub NarebskiSep 14, 2008
  32. Junio C HamanoSep 15, 2008
  33. Jakub NarebskiSep 14, 2008
  34. Junio C HamanoSep 15, 2008
  35. Jakub NarebskiSep 14, 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.