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
This commit is contained in:
@ -6,6 +6,7 @@
|
||||
#include "list-objects.h"
|
||||
#include "list-objects-filter.h"
|
||||
#include "list-objects-filter-options.h"
|
||||
#include "object.h"
|
||||
#include "object-store.h"
|
||||
#include "pack.h"
|
||||
#include "pack-bitmap.h"
|
||||
@ -209,7 +210,8 @@ static inline void finish_object__ma(struct object *obj)
|
||||
*/
|
||||
switch (arg_missing_action) {
|
||||
case MA_ERROR:
|
||||
die("missing blob object '%s'", oid_to_hex(&obj->oid));
|
||||
die("missing %s object '%s'",
|
||||
type_name(obj->type), oid_to_hex(&obj->oid));
|
||||
return;
|
||||
|
||||
case MA_ALLOW_ANY:
|
||||
@ -222,8 +224,8 @@ static inline void finish_object__ma(struct object *obj)
|
||||
case MA_ALLOW_PROMISOR:
|
||||
if (is_promisor_object(&obj->oid))
|
||||
return;
|
||||
die("unexpected missing blob object '%s'",
|
||||
oid_to_hex(&obj->oid));
|
||||
die("unexpected missing %s object '%s'",
|
||||
type_name(obj->type), oid_to_hex(&obj->oid));
|
||||
return;
|
||||
|
||||
default:
|
||||
@ -235,7 +237,7 @@ static inline void finish_object__ma(struct object *obj)
|
||||
static int finish_object(struct object *obj, const char *name, void *cb_data)
|
||||
{
|
||||
struct rev_list_info *info = cb_data;
|
||||
if (obj->type == OBJ_BLOB && !has_object_file(&obj->oid)) {
|
||||
if (!has_object_file(&obj->oid)) {
|
||||
finish_object__ma(obj);
|
||||
return 1;
|
||||
}
|
||||
@ -373,6 +375,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
|
||||
repo_init_revisions(the_repository, &revs, prefix);
|
||||
revs.abbrev = DEFAULT_ABBREV;
|
||||
revs.commit_format = CMIT_FMT_UNSPECIFIED;
|
||||
revs.do_not_die_on_missing_tree = 1;
|
||||
|
||||
/*
|
||||
* Scan the argument list before invoking setup_revisions(), so that we
|
||||
|
Reference in New Issue
Block a user