Files
git/object-file-convert.h
Patrick Steinhardt f6e174b2d8 object-file-convert: stop depending on the_repository
There are multiple sites in "object-file-convert.c" where we use the
global `the_repository` variable, either explicitly or implicitly by
using `the_hash_algo`. All of these callsites are transitively called
from `convert_object_file()`, which indeed has no repo as input.

Refactor the function so that it receives a repository as a parameter
and pass it through to all internal functions to get rid of the
dependency. Remove the `USE_THE_REPOSITORY_VARIABLE` define.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-03-10 13:16:19 -07:00

26 lines
658 B
C

#ifndef OBJECT_CONVERT_H
#define OBJECT_CONVERT_H
struct repository;
struct object_id;
struct git_hash_algo;
struct strbuf;
#include "object.h"
int repo_oid_to_algop(struct repository *repo, const struct object_id *src,
const struct git_hash_algo *to, struct object_id *dest);
/*
* Convert an object file from one hash algorithm to another algorithm.
* Return -1 on failure, 0 on success.
*/
int convert_object_file(struct repository *repo,
struct strbuf *outbuf,
const struct git_hash_algo *from,
const struct git_hash_algo *to,
const void *buf, size_t len,
enum object_type type,
int gentle);
#endif /* OBJECT_CONVERT_H */