@@ -42,6 +42,7 @@
#include "promisor-remote.h"
#include "pack-mtimes.h"
#include "parse-options.h"
+#include "object-file-convert.h"
/*
* Objects we are going to pack are collected in the `to_pack` structure.
@@ -1547,10 +1548,16 @@ static struct object_entry *create_object_entry(const struct object_id *oid,
struct packed_git *found_pack,
off_t found_offset)
{
+ struct repository *repo = the_repository;
+ const struct git_hash_algo *compat = repo->compat_hash_algo;
struct object_entry *entry;
entry = packlist_alloc(&to_pack, oid);
entry->hash = hash;
+ if (compat &&
+ repo_oid_to_algop(repo, &entry->idx.oid, compat,
+ &entry->idx.compat_oid))
+ die(_("can't map object %s while writing pack"), oid_to_hex(oid));
oe_set_type(entry, type);
if (exclude)
entry->preferred_base = 1;
When pack-objects is run all objects in the repository should already have a compatibilty hash computed so it is just necessary to read the existing mappings and store the value in struct pack_idx_entry. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> --- builtin/pack-objects.c | 7 +++++++ 1 file changed, 7 insertions(+)