graph_size = xsize_t(st->st_size);
- if (graph_size < graph_min_size(the_hash_algo)) {
+ if (graph_size < graph_min_size(r->hash_algo)) {
close(fd);
error(_("commit-graph file is too small"));
return NULL;
size_t chunk_size, void *data)
{
struct commit_graph *g = data;
- if (chunk_size / graph_data_width(the_hash_algo) != g->num_commits)
+ if (chunk_size / graph_data_width(g->hash_algo) != g->num_commits)
return error(_("commit-graph commit data chunk is wrong size"));
g->chunk_commit_data = chunk_start;
return 0;
}
int open_commit_graph_chain(const char *chain_file,
- int *fd, struct stat *st)
+ int *fd, struct stat *st,
+ const struct git_hash_algo *hash_algo)
{
*fd = git_open(chain_file);
if (*fd < 0)
close(*fd);
return 0;
}
- if (st->st_size < the_hash_algo->hexsz) {
+ if (st->st_size < hash_algo->hexsz) {
close(*fd);
if (!st->st_size) {
/* treat empty files the same as missing */
int i = 0, valid = 1, count;
FILE *fp = xfdopen(fd, "r");
- count = st->st_size / (the_hash_algo->hexsz + 1);
+ count = st->st_size / (r->hash_algo->hexsz + 1);
CALLOC_ARRAY(oids, count);
odb_prepare_alternates(r->objects);
int fd;
struct commit_graph *g = NULL;
- if (open_commit_graph_chain(chain_file, &fd, &st)) {
+ if (open_commit_graph_chain(chain_file, &fd, &st, r->hash_algo)) {
int incomplete;
/* ownership of fd is taken over by load function */
g = load_commit_graph_chain_fd_st(r, fd, &st, &incomplete);
die(_("invalid commit position. commit-graph is likely corrupt"));
lex_index = pos - g->num_commits_in_base;
- commit_data = g->chunk_commit_data + st_mult(graph_data_width(the_hash_algo), lex_index);
+ commit_data = g->chunk_commit_data + st_mult(graph_data_width(g->hash_algo), lex_index);
graph_data = commit_graph_data_at(item);
graph_data->graph_pos = pos;
g = g->base_graph;
commit_data = g->chunk_commit_data +
- st_mult(graph_data_width(the_hash_algo),
+ st_mult(graph_data_width(g->hash_algo),
graph_pos - g->num_commits_in_base);
oidread(&oid, commit_data, the_repository->hash_algo);
int count;
for (count = 0; count < ctx->commits.nr; count++, list++) {
display_progress(ctx->progress, ++ctx->progress_cnt);
- hashwrite(f, (*list)->object.oid.hash, the_hash_algo->rawsz);
+ hashwrite(f, (*list)->object.oid.hash, f->algop->rawsz);
}
return 0;
die(_("unable to parse commit %s"),
oid_to_hex(&(*list)->object.oid));
tree = get_commit_tree_oid(*list);
- hashwrite(f, tree->hash, the_hash_algo->rawsz);
+ hashwrite(f, tree->hash, ctx->r->hash_algo->rawsz);
parent = (*list)->parents;
return 0;
num = write_graph_chunk_base_1(f, g->base_graph);
- hashwrite(f, g->oid.hash, the_hash_algo->rawsz);
+ hashwrite(f, g->oid.hash, g->hash_algo->rawsz);
return num + 1;
}
struct hashfile *f;
struct tempfile *graph_layer; /* when ctx->split is non-zero */
struct lock_file lk = LOCK_INIT;
- const unsigned hashsz = the_hash_algo->rawsz;
+ const unsigned hashsz = ctx->r->hash_algo->rawsz;
struct strbuf progress_title = STRBUF_INIT;
struct chunkfile *cf;
unsigned char file_hash[GIT_MAX_RAWSZ];
hashwrite_be32(f, GRAPH_SIGNATURE);
hashwrite_u8(f, GRAPH_VERSION);
- hashwrite_u8(f, oid_version(the_hash_algo));
+ hashwrite_u8(f, oid_version(ctx->r->hash_algo));
hashwrite_u8(f, get_num_chunks(cf));
hashwrite_u8(f, ctx->num_commit_graphs_after - 1);