Merge branch 'dt/cat-file-batch-ambiguous'
"git cat-file --batch" reported a dangling symbolic link by mistake, when it wanted to report that a given name is ambiguous. * dt/cat-file-batch-ambiguous: t1512: test ambiguous cat-file --batch and --batch-output Do not print 'dangling' for cat-file in case of ambiguity
This commit is contained in:
20
cache.h
20
cache.h
@ -1345,6 +1345,24 @@ struct object_context {
|
||||
GET_OID_TREE | GET_OID_TREEISH | \
|
||||
GET_OID_BLOB)
|
||||
|
||||
enum get_oid_result {
|
||||
FOUND = 0,
|
||||
MISSING_OBJECT = -1, /* The requested object is missing */
|
||||
SHORT_NAME_AMBIGUOUS = -2,
|
||||
/* The following only apply when symlinks are followed */
|
||||
DANGLING_SYMLINK = -4, /*
|
||||
* The initial symlink is there, but
|
||||
* (transitively) points to a missing
|
||||
* in-tree file
|
||||
*/
|
||||
SYMLINK_LOOP = -5,
|
||||
NOT_DIR = -6, /*
|
||||
* Somewhere along the symlink chain, a path is
|
||||
* requested which contains a file as a
|
||||
* non-final element.
|
||||
*/
|
||||
};
|
||||
|
||||
extern int get_oid(const char *str, struct object_id *oid);
|
||||
extern int get_oid_commit(const char *str, struct object_id *oid);
|
||||
extern int get_oid_committish(const char *str, struct object_id *oid);
|
||||
@ -1352,7 +1370,7 @@ extern int get_oid_tree(const char *str, struct object_id *oid);
|
||||
extern int get_oid_treeish(const char *str, struct object_id *oid);
|
||||
extern int get_oid_blob(const char *str, struct object_id *oid);
|
||||
extern void maybe_die_on_misspelt_object_name(const char *name, const char *prefix);
|
||||
extern int get_oid_with_context(const char *str, unsigned flags, struct object_id *oid, struct object_context *oc);
|
||||
extern enum get_oid_result get_oid_with_context(const char *str, unsigned flags, struct object_id *oid, struct object_context *oc);
|
||||
|
||||
|
||||
typedef int each_abbrev_fn(const struct object_id *oid, void *);
|
||||
|
Reference in New Issue
Block a user