[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.65Elijah 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
possiblediff.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