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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]