mirror of
https://github.com/git-for-windows/git.git
synced 2026-06-11 08:30:32 -05:00
While the loose object map functions in "loose.c" accept a generic `struct odb_source *`, they always expect this to be the "files" backend. Furthermore, the subsystem doesn't even care about the "files" backend, but only uses it as a stepping stone to get to the "loose" backend. This assumption is implicit and thus not immediately obvious. Refactor the interfaces to instead operate on a `struct odb_source_loose` instead, which eliminates the implicit dependency and unnecessary detour via the "files" source. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
27 lines
744 B
C
27 lines
744 B
C
#ifndef LOOSE_H
|
|
#define LOOSE_H
|
|
|
|
#include "khash.h"
|
|
|
|
struct repository;
|
|
struct odb_source_loose;
|
|
|
|
struct loose_object_map {
|
|
kh_oid_map_t *to_compat;
|
|
kh_oid_map_t *to_storage;
|
|
};
|
|
|
|
void loose_object_map_init(struct loose_object_map **map);
|
|
void loose_object_map_clear(struct loose_object_map **map);
|
|
int repo_loose_object_map_oid(struct repository *repo,
|
|
const struct object_id *src,
|
|
const struct git_hash_algo *dest_algo,
|
|
struct object_id *dest);
|
|
int repo_add_loose_object_map(struct odb_source_loose *loose,
|
|
const struct object_id *oid,
|
|
const struct object_id *compat_oid);
|
|
int repo_read_loose_object_map(struct repository *repo);
|
|
int repo_write_loose_object_map(struct repository *repo);
|
|
|
|
#endif
|