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

Re: [PATCH 0/6] Introduce pathspec struct

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 29, 2010, 04:26 UTC
Message-ID
<7vzkv1qinx.fsf@alter.siamese.dyndns.org>
In-Reply-To
<AANLkTinZ=dx1nBXTw0E=nLOmncsgNb7wv1-+ddWzPU+e@mail.gmail.com>
Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:
Show 6 quoted lines
>>  $ git log --exclude "Doc*" master..pu -- '*.txt'
>>  $ git grep --exclude "t/" -e 'test .*-L' -- '*.sh'
>
> I was writing "but you would lose the ability to mix negative and
> positive pathspecs together, something like 'exclude Documentation
> except Documentation/technical'",...

I think that is way overengineered. We _could_ make the expressions arbitrarily complex and hard to use by using irregular syntax tricks, but let's not go there. Let's just keep things simple and usable instead.

 * Without pathspec, everything is included;
 * pathspecs will filter everything that do not match;
 * --exclude also filters what matches them from the remainder.
So...
> $ git log --exclude Documentation --exclude "!Documentation/technical"
> master..pu -- '*.txt'
>
> does not sound too twisted to understand (I hope).
...I would not vote for this.
> ... If David
> needs "git grep --exclude-dir" now, he should keep working on
> builtin/grep.c as he's doing now (maybe change --exclude-dir to
> --exclude).
That's not what I am saying.

Because --exclude-dir is a special case of --exclude, it would be an efficient solution _if_ we can externally keep the command line option compatible with GNU grep as a syntax sugar, and turn it into something else internally that can be passed to your "pathspec with negative" engine.

> ..., but his work on the
> command line interface _and tests_ won't be wasted.
Yup.
Previous: Nguyen Thai Ngoc DuyNext: David Ripton
Message 20 of 22 in “Introduce pathspec struct”
  1. 0/6 Introduce pathspec structNguyễn Thái Ngọc Duy, Sep 19, 2010
  2. 1/6 Add struct pathspecNguyễn Thái Ngọc Duy, Sep 19, 2010
  3. Junio C HamanoSep 27, 2010
  4. yj2133011Sep 29, 2010
  5. 2/6 diff-no-index: use diff_tree_setup_paths()Nguyễn Thái Ngọc Duy, Sep 19, 2010
  6. 3/6 pathspec: cache string length when initialize pathspecNguyễn Thái Ngọc Duy, Sep 19, 2010
  7. Junio C HamanoSep 27, 2010
  8. Nguyen Thai Ngoc DuySep 28, 2010
  9. 4/6 Convert struct diff_options to use struct pathspecNguyễn Thái Ngọc Duy, Sep 19, 2010
  10. Junio C HamanoSep 27, 2010
  11. 5/6 tree_entry_interesting(): remove dependency on struct diff_optionsNguyễn Thái Ngọc Duy, Sep 19, 2010
  12. Junio C HamanoSep 27, 2010
  13. Nguyen Thai Ngoc DuySep 28, 2010
  14. 6/6 Move tree_entry_interesting() to tree-walk.c and export itNguyễn Thái Ngọc Duy, Sep 19, 2010
  15. Elijah NewrenSep 20, 2010
  16. Nguyen Thai Ngoc DuySep 20, 2010
  17. Junio C HamanoSep 28, 2010
  18. Bo YangSep 28, 2010
  19. Nguyen Thai Ngoc DuySep 28, 2010
  20. Junio C HamanoSep 29, 2010
  21. David RiptonSep 28, 2010
  22. Junio C HamanoSep 29, 2010

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.