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

Re: [PATCH 8/8] pathspec: convert parse_pathspec to take an index

From
BWBrandon Williams <bmwill@google.com>
Date
May 11, 2017, 17:36 UTC
Message-ID
<20170511173605.GB83655@google.com>
In-Reply-To
<xmqqh90sw4dr.fsf@gitster.mtv.corp.google.com>
On 05/11, Junio C Hamano wrote:
Show 21 quoted lines
> Brandon Williams <bmwill@google.com> writes:
> 
> > ls-files is the only command (that I know of) which does cache pruning
> > based on the common prefix of all pathspecs given.  If there is a
> > submodule named 'sub' and you provided a pathspec 'sub/', the matching
> > logic can handle this but the cache pruning logic would prune all
> > entries from the index which don't have a leading 'sub/' which is the
> > common prefix of all pathspecs (if you didn't strip off the slash).
> > Meaning you'd prune the submodule 'sub' when  you really didn't want to.
> > This could probably be fixed to have the cache pruning logic to prune by
> > ignoring the trailing slash always.
> >
> > So there's another option here if you don't feel quite right about
> > piping through an index into parse_pathspec just yet.
> 
> Oh, don't get me wrong---I do not think passing an index_state
> instance throughout the callchain (and perhaps later we may pass an
> instance of "repository" instead) is a wrong move in the longer term
> for various APIs.  I was just wondering if we have callers that can
> benefit from this change immediately---manipulators like "commit" do
> already use multiple instances of index_state structure.

I didn't get the feeling you thought it was a bad change. I really appreciate your thoughts since they are things which I also was wondering about.

Show 7 quoted lines
> But perhaps you are right---it may be wrong for the contents of the
> current index (or any index) to affect how a pathspec element is
> parsed in the first place.  If the current code (before this series)
> uses the_index only for error checking, we may want to separate that
> out of the parse_pathspec() callchain, so that it does not even look
> at any index (not just the_index).  And that may be a better change
> overall.

I'll polish up the other version of the series which does the processing (using an index) outside of parse_pathspec() and let you see how you feel about those changes. Note that if we go with the route to not pass in an index now, it doesn't necessarily mean that down the line we won't have to pass a 'repository' instance into parse_pathspec(). Just food for thought.

-- 
Brandon Williams
Previous: Junio C HamanoNext: Junio C Hamano
Message 19 of 29 in “convert pathspec.c to take an index parameter”
  1. 0/8 convert pathspec.c to take an index parameterBrandon Williams, May 9, 2017
  2. 2/8 submodule: add die_in_unpopulated_submodule functionBrandon Williams, May 9, 2017
  3. 3/8 pathspec: change PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flagBrandon Williams, May 9, 2017
  4. Junio C HamanoMay 10, 2017
  5. Brandon WilliamsMay 10, 2017
  6. 1/8 pathspec: provide a more descriptive die messageBrandon Williams, May 9, 2017
  7. 5/8 pathspec: convert strip_submodule_slash to take an indexBrandon Williams, May 9, 2017
  8. Junio C HamanoMay 10, 2017
  9. 7/8 pathspec: convert init_pathspec_item to take an indexBrandon Williams, May 9, 2017
  10. 6/8 pathspec: convert find_pathspecs_matching_against_index to take an indexBrandon Williams, May 9, 2017
  11. 4/8 pathspec: rename PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAPBrandon Williams, May 9, 2017
  12. Junio C HamanoMay 10, 2017
  13. 8/8 pathspec: convert parse_pathspec to take an indexBrandon Williams, May 9, 2017
  14. Junio C HamanoMay 10, 2017
  15. Brandon WilliamsMay 10, 2017
  16. Junio C HamanoMay 11, 2017
  17. Johannes SixtMay 11, 2017
  18. Junio C HamanoMay 11, 2017
  19. Brandon WilliamsMay 11, 2017
  20. Junio C HamanoMay 12, 2017
  21. 0/6 convert pathspec.c to take an index parameterBrandon Williams, May 11, 2017
  22. 2/6 submodule: add die_in_unpopulated_submodule functionBrandon Williams, May 11, 2017
  23. 4/6 ls-files: prevent prune_cache from overeagerly pruning submodulesBrandon Williams, May 11, 2017
  24. 3/6 pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flagBrandon Williams, May 11, 2017
  25. 6/6 pathspec: convert find_pathspecs_matching_against_index to take an indexBrandon Williams, May 11, 2017
  26. 5/6 pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAPBrandon Williams, May 11, 2017
  27. 1/6 pathspec: provide a more descriptive die messageBrandon Williams, May 11, 2017
  28. Junio C HamanoMay 12, 2017
  29. Brandon WilliamsMay 12, 2017

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.