summaryrefslogtreecommitdiff
path: root/list-objects-filter.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-10-30 06:43:39 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-10-30 06:43:39 (GMT)
commit77d503757d6328703f9571a4432dd83800bc26bb (patch)
tree55b106aab90b9b44a8d8e7cc38af63f2a3e743b9 /list-objects-filter.h
parentc670b1f876521c9f7cd40184bf7ed05aad843433 (diff)
parent8b10a206f090e01ce1ac4d9a10ec769e2409e2b0 (diff)
downloadgit-77d503757d6328703f9571a4432dd83800bc26bb.zip
git-77d503757d6328703f9571a4432dd83800bc26bb.tar.gz
git-77d503757d6328703f9571a4432dd83800bc26bb.tar.bz2
Merge branch 'md/filter-trees'
The "rev-list --filter" feature learned to exclude all trees via "tree:0" filter. * md/filter-trees: list-objects: support for skipping tree traversal filter-trees: code clean-up of tests list-objects-filter: implement filter tree:0 list-objects-filter-options: do not over-strbuf_init list-objects-filter: use BUG rather than die revision: mark non-user-given objects instead rev-list: handle missing tree objects properly list-objects: always parse trees gently list-objects: refactor to process_tree_contents list-objects: store common func args in struct
Diffstat (limited to 'list-objects-filter.h')
-rw-r--r--list-objects-filter.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/list-objects-filter.h b/list-objects-filter.h
index a6f6b49..52b4a84 100644
--- a/list-objects-filter.h
+++ b/list-objects-filter.h
@@ -24,6 +24,11 @@ struct oidset;
* In general, objects should only be shown once, but
* this result DOES NOT imply that we mark it SEEN.
*
+ * _SKIP_TREE : Used in LOFS_BEGIN_TREE situation - indicates that
+ * the tree's children should not be iterated over. This
+ * is used as an optimization when all children will
+ * definitely be ignored.
+ *
* Most of the time, you want the combination (_MARK_SEEN | _DO_SHOW)
* but they can be used independently, such as when sparse-checkout
* pattern matching is being applied.
@@ -45,6 +50,7 @@ enum list_objects_filter_result {
LOFR_ZERO = 0,
LOFR_MARK_SEEN = 1<<0,
LOFR_DO_SHOW = 1<<1,
+ LOFR_SKIP_TREE = 1<<2,
};
enum list_objects_filter_situation {