OK it's good enough now. I no longer use struct exclude_list. Its name does not really match the semantics. The last two patches implement tree exclusion and are not meant for submission to en/object-list-with-pathspec. I wanted to see if the new struct was extensible. And I need tree exclusion anyway in my narrow clone. Elijah Newren (2): Add testcases showing how pathspecs are ignored with rev-list --objects Make rev-list --objects work together with pathspecs Nguyễn Thái Ngọc Duy (6): diff-no-index: use diff_tree_setup_paths() Introduce struct tree_pathspec_list tree_entry_interesting(): remove dependency on struct diff_options tree-walk: move tree_entry_interesting() from tree-diff.c setup_tree_pathspec(): interpret '^' as negative pathspec tree_entry_interesting(): support negative pathspec builtin/diff-files.c | 2 +- builtin/diff.c | 4 +- builtin/log.c | 2 +- diff-lib.c | 2 +- diff-no-index.c | 13 ++-- diff.h | 4 +- list-objects.c | 23 ++++++ revision.c | 14 ++-- revision.h | 3 +- t/t6000-rev-list-misc.sh | 51 ++++++++++++ t/t9999-test.sh | 44 +++++++++++ tree-diff.c | 157 ++----------------------------------- tree-walk.c | 191 ++++++++++++++++++++++++++++++++++++++++++++++ tree-walk.h | 16 ++++ 14 files changed, 356 insertions(+), 170 deletions(-) create mode 100755 t/t6000-rev-list-misc.sh create mode 100755 t/t9999-test.sh -- 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