mirror of
https://github.com/git/git.git
synced 2026-01-09 17:46:37 +00:00
path-walk: mark trees and blobs as UNINTERESTING
When the input rev_info has UNINTERESTING starting points, we want to be sure that the UNINTERESTING flag is passed appropriately through the objects. To match how this is done in places such as 'git pack-objects', we use the mark_edges_uninteresting() method. This method has an option for using the "sparse" walk, which is similar in spirit to the path-walk API's walk. To be sure to keep it independent, add a new 'prune_all_uninteresting' option to the path_walk_info struct. To check how the UNINTERSTING flag is spread through our objects, extend the 'test-tool path-walk' command to output whether or not an object has that flag. This changes our tests significantly, including the removal of some objects that were previously visited due to the incomplete implementation. Signed-off-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
9145660979
commit
6333e7ae0b
@@ -40,6 +40,14 @@ struct path_walk_info {
|
||||
int trees;
|
||||
int blobs;
|
||||
int tags;
|
||||
|
||||
/**
|
||||
* When 'prune_all_uninteresting' is set and a path has all objects
|
||||
* marked as UNINTERESTING, then the path-walk will not visit those
|
||||
* objects. It will not call path_fn on those objects and will not
|
||||
* walk the children of such trees.
|
||||
*/
|
||||
int prune_all_uninteresting;
|
||||
};
|
||||
|
||||
#define PATH_WALK_INFO_INIT { \
|
||||
|
||||
Reference in New Issue
Block a user