odb: introduce odb_write_object()
We do not have a backend-agnostic way to write objects into an object database. While there is `write_object_file()`, this function is rather specific to the loose object format. Introduce `odb_write_object()` to plug this gap. For now, this function is a simple wrapper around `write_object_file()` and doesn't even use the passed-in object database yet. This will change in subsequent commits, where `write_object_file()` is converted so that it works on top of an `odb_source`. `odb_write_object()` will then become responsible for deciding which source an object shall be written to. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
0f9b189357
commit
ab1c6e1d12
@@ -157,29 +157,9 @@ enum unpack_loose_header_result unpack_loose_header(git_zstream *stream,
|
||||
struct object_info;
|
||||
int parse_loose_header(const char *hdr, struct object_info *oi);
|
||||
|
||||
enum {
|
||||
/*
|
||||
* By default, `write_object_file()` 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_FILE_PERSIST = (1 << 0),
|
||||
|
||||
/*
|
||||
* Do not print an error in case something gose wrong.
|
||||
*/
|
||||
WRITE_OBJECT_FILE_SILENT = (1 << 1),
|
||||
};
|
||||
|
||||
int write_object_file_flags(const void *buf, unsigned long len,
|
||||
enum object_type type, struct object_id *oid,
|
||||
struct object_id *compat_oid_in, unsigned flags);
|
||||
static inline int write_object_file(const void *buf, unsigned long len,
|
||||
enum object_type type, struct object_id *oid)
|
||||
{
|
||||
return write_object_file_flags(buf, len, type, oid, NULL, 0);
|
||||
}
|
||||
int write_object_file(const void *buf, unsigned long len,
|
||||
enum object_type type, struct object_id *oid,
|
||||
struct object_id *compat_oid_in, unsigned flags);
|
||||
|
||||
struct input_stream {
|
||||
const void *(*read)(struct input_stream *, unsigned long *len);
|
||||
|
||||
Reference in New Issue
Block a user