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

[PATCHv2 0/8] Make rev-list --objects work with pathspecs; minor optimizations

From
Elijah Newren <newren@gmail.com>
Date
Aug 26, 2010, 06:21 UTC
Message-ID
<1282803711-10253-1-git-send-email-newren@gmail.com>

This series enables rev-list to produce a list of objects that is path limited, when the user requests it. It also provides a few small code cleanups and some small optimizations.

Changes since last round:
  * Patch 1 has two new testcase; one that triggered a bug I found,
    and an interesting case Junio mentioned needed to work.
  * Patch 2 will have fewer mallocs/frees in some cases (a suggestion
    from Nguyen Thai Ngoc Duy), and corrects an issue from the first
    series with how it calls tree_entry_interesting.
  * Patch 3 is new; it adds a simple code comment that would have
    alerted me to avoiding the bug in the first round of the series.
  * Patches 4-8 are unchanged.

As before, the last two patches are weatherballons. They can be silently dropped.

Updated timings, for the curious:
 A git rev-list --quiet HEAD
 B git rev-list --quiet HEAD -- Documentation/
 C git rev-list --quiet HEAD -- t/
 D git rev-list --objects HEAD > /dev/null
 E git rev-list --objects HEAD -- Documentation/ > /dev/null
 F git rev-list --objects HEAD -- t/t9350-fast-export.sh > /dev/null
Results:
             A      B      C      D      E      F
maint       0.34   0.68   1.33   1.90   1.39   0.65
Patch-1     0.34   0.68   1.33   1.90   1.38   0.65
Patch-2     0.34   0.68   1.33   1.88   0.97   0.66
Patch-3     0.34   0.68   1.33   1.88   0.97   0.65
Patch-4     0.34   0.67   1.33   1.87   0.97   0.65
Patch-5     0.34   0.68   1.33   1.88   0.97   0.65
Patch-6     0.34   0.65   1.28   1.87   0.93   0.65
Patch-7     0.34   0.65   1.29   1.86   0.94   0.65
Patch-8     0.34   0.65   1.28   1.85   0.93   0.65
Elijah Newren (8):
  Add testcases showing how pathspecs are ignored with rev-list
    --objects
  Make rev-list --objects work together with pathspecs
  Document pre-condition for tree_entry_interesting
  tree-walk: Correct bitrotted comment about tree_entry()
  tree_entry_interesting(): Make return value more specific
  diff_tree(): Skip skip_uninteresting() when all remaining paths
    interesting
  list-objects.c: Avoid recomputing interesting-ness for subtrees when
    possible
  tree-diff.c: Avoid recomputing interesting-ness for subtrees when
    possible
 diff.h                   |    1 +
 list-objects.c           |   34 +++++++++++++++++++++++---
 revision.c               |    8 ++++-
 revision.h               |    3 +-
 t/t6000-rev-list-misc.sh |   51 +++++++++++++++++++++++++++++++++++++++
 tree-diff.c              |   60 +++++++++++++++++++++++----------------------
 tree-walk.h              |    4 ++-
 7 files changed, 124 insertions(+), 37 deletions(-)
 create mode 100755 t/t6000-rev-list-misc.sh
-- 
1.7.2.2.45.ga60f
Next: Elijah Newren
Message 1 of 10 in “[PATCHv2 0/8] Make rev-list --objects work with pathspecs; minor optimizations”
  1. Elijah NewrenAug 26, 2010
  2. 1/8 Add testcases showing how pathspecs are ignored with rev-list --objectsElijah Newren, Aug 26, 2010
  3. 2/8 Make rev-list --objects work together with pathspecsElijah Newren, Aug 26, 2010
  4. 3/8 Document pre-condition for tree_entry_interestingElijah Newren, Aug 26, 2010
  5. 4/8 tree-walk: Correct bitrotted comment about tree_entry()Elijah Newren, Aug 26, 2010
  6. 5/8 tree_entry_interesting(): Make return value more specificElijah Newren, Aug 26, 2010
  7. 6/8 diff_tree(): Skip skip_uninteresting() when all remaining paths interestingElijah Newren, Aug 26, 2010
  8. 7/8 list-objects.c: Avoid recomputing interesting-ness for subtrees when possibleElijah Newren, Aug 26, 2010
  9. 8/8 tree-diff.c: Avoid recomputing interesting-ness for subtrees when possibleElijah Newren, Aug 26, 2010
  10. Junio C HamanoAug 27, 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.