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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html