Merge branch 'ps/object-file-wo-the-repository'
Reduce implicit assumption and dependence on the_repository in the object-file subsystem. * ps/object-file-wo-the-repository: object-file: get rid of `the_repository` in index-related functions object-file: get rid of `the_repository` in `force_object_loose()` object-file: get rid of `the_repository` in `read_loose_object()` object-file: get rid of `the_repository` in loose object iterators object-file: remove declaration for `for_each_file_in_obj_subdir()` object-file: inline `for_each_loose_file_in_objdir_buf()` object-file: get rid of `the_repository` when writing objects odb: introduce `odb_write_object()` loose: write loose objects map via their source object-file: get rid of `the_repository` in `finalize_object_file()` object-file: get rid of `the_repository` in `loose_object_info()` object-file: get rid of `the_repository` when freshening objects object-file: inline `check_and_freshen()` functions object-file: get rid of `the_repository` in `has_loose_object()` object-file: stop using `the_hash_algo` object-file: fix -Wsign-compare warnings
This commit is contained in:
38
odb.h
38
odb.h
@@ -437,6 +437,44 @@ enum for_each_object_flags {
|
||||
FOR_EACH_OBJECT_SKIP_ON_DISK_KEPT_PACKS = (1<<4),
|
||||
};
|
||||
|
||||
enum {
|
||||
/*
|
||||
* By default, `odb_write_object()` does not actually write anything
|
||||
* into the object store, but only computes the object ID. This flag
|
||||
* changes that so that the object will be written as a loose object
|
||||
* and persisted.
|
||||
*/
|
||||
WRITE_OBJECT_PERSIST = (1 << 0),
|
||||
|
||||
/*
|
||||
* Do not print an error in case something goes wrong.
|
||||
*/
|
||||
WRITE_OBJECT_SILENT = (1 << 1),
|
||||
};
|
||||
|
||||
/*
|
||||
* Write an object into the object database. The object is being written into
|
||||
* the local alternate of the repository. If provided, the converted object ID
|
||||
* as well as the compatibility object ID are written to the respective
|
||||
* pointers.
|
||||
*
|
||||
* Returns 0 on success, a negative error code otherwise.
|
||||
*/
|
||||
int odb_write_object_ext(struct object_database *odb,
|
||||
const void *buf, unsigned long len,
|
||||
enum object_type type,
|
||||
struct object_id *oid,
|
||||
struct object_id *compat_oid,
|
||||
unsigned flags);
|
||||
|
||||
static inline int odb_write_object(struct object_database *odb,
|
||||
const void *buf, unsigned long len,
|
||||
enum object_type type,
|
||||
struct object_id *oid)
|
||||
{
|
||||
return odb_write_object_ext(odb, buf, len, type, oid, NULL, 0);
|
||||
}
|
||||
|
||||
/* Compatibility wrappers, to be removed once Git 2.51 has been released. */
|
||||
#include "repository.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user