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

[PATCH WIP 0/3] git log --exclude

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Oct 5, 2011, 07:18 UTC
Message-ID
<1317799088-26626-1-git-send-email-pclouds@gmail.com>

This series adds --exclude that uses .gitignore mechanism remove commits whose changes that are _entirely_ excluded. The main patch is 2/3 where it teaches diff_tree_* about struct exclude_list.

Because it uses .gitignore mechanism, beware that these patterns do not behave exactly like pathspecs (patterns without slashes match every directory, for example)

I tried these commands
  time git log --stat >/dev/null
  time git log --stat --exclude=Documentation >/dev/null

The former took 37 secs, the latter 40 secs. Not bad, but there is definitely room for improvement. skip_excludes() should be able to point out whether an entire directory is excluded and skip the whole directory (as opposed to descending in and checking files one by one now, in fear of negative patterns). These kinds of optimizations benefit sparse checkout too.

I think I made a mistake somewhere because the above command seems to remove more commits than it should... Regardless, "git log --exclude=po" on gnome-shell looks sooo clean.

Nguyễn Thái Ngọc Duy (3):
  diff-no-index: rename read_directory to avoid conflict from dir.h
  tree-diff: teach it to understand exclude patterns
  log: add --exclude option
 diff-no-index.c |    6 ++--
 diff.h          |   11 ++++++++++
 revision.c      |    7 ++++-
 revision.h      |    2 +
 tree-diff.c     |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 5 files changed, 75 insertions(+), 9 deletions(-)
-- 
1.7.3.1.256.g2539c.dirty
Next: Nguyễn Thái Ngọc Duy
Message 1 of 12 in “git log --exclude”
  1. 0/3 git log --excludeNguyễn Thái Ngọc Duy, Oct 5, 2011
  2. 1/3 diff-no-index: rename read_directory to avoid conflict from dir.hNguyễn Thái Ngọc Duy, Oct 5, 2011
  3. 2/3 tree-diff: teach it to understand exclude patternsNguyễn Thái Ngọc Duy, Oct 5, 2011
  4. 3/3 log: add --exclude optionNguyễn Thái Ngọc Duy, Oct 5, 2011
  5. Matthieu MoyOct 5, 2011
  6. Nguyen Thai Ngoc DuyOct 5, 2011
  7. Junio C HamanoOct 5, 2011
  8. Jeff KingOct 6, 2011
  9. Junio C HamanoOct 6, 2011
  10. Nguyen Thai Ngoc DuyOct 6, 2011
  11. Nguyen Thai Ngoc DuyOct 7, 2011
  12. Junio C HamanoOct 7, 2011

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.