]> git.ipfire.org Git - thirdparty/git.git/blobdiff - pack-write.c
Merge branch 'jt/t5500-unflake'
[thirdparty/git.git] / pack-write.c
index d775c7406dd5a869a1ce4d28f6ef872e08476b77..f0017beb9dd4386399c39b34a2157f9a1c5308d1 100644 (file)
@@ -124,7 +124,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec
                }
                hashwrite(f, obj->oid.hash, the_hash_algo->rawsz);
                if ((opts->flags & WRITE_IDX_STRICT) &&
-                   (i && !oidcmp(&list[-2]->oid, &obj->oid)))
+                   (i && oideq(&list[-2]->oid, &obj->oid)))
                        die("The same object %s appears twice in the pack",
                            oid_to_hex(&obj->oid));
        }
@@ -170,8 +170,9 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec
        }
 
        hashwrite(f, sha1, the_hash_algo->rawsz);
-       hashclose(f, NULL, ((opts->flags & WRITE_IDX_VERIFY)
-                           ? CSUM_CLOSE : CSUM_FSYNC));
+       finalize_hashfile(f, NULL, CSUM_HASH_IN_STREAM | CSUM_CLOSE |
+                                   ((opts->flags & WRITE_IDX_VERIFY)
+                                   ? 0 : CSUM_FSYNC));
        return index_name;
 }
 
@@ -259,7 +260,7 @@ void fixup_pack_header_footer(int pack_fd,
                if (partial_pack_offset == 0) {
                        unsigned char hash[GIT_MAX_RAWSZ];
                        the_hash_algo->final_fn(hash, &old_hash_ctx);
-                       if (hashcmp(hash, partial_pack_hash) != 0)
+                       if (!hasheq(hash, partial_pack_hash))
                                die("Unexpected checksum for %s "
                                    "(disk corruption?)", pack_name);
                        /*
@@ -348,7 +349,7 @@ void finish_tmp_packfile(struct strbuf *name_buffer,
                         struct pack_idx_entry **written_list,
                         uint32_t nr_written,
                         struct pack_idx_option *pack_idx_opts,
-                        unsigned char sha1[])
+                        unsigned char hash[])
 {
        const char *idx_tmp_name;
        int basename_len = name_buffer->len;
@@ -357,18 +358,18 @@ void finish_tmp_packfile(struct strbuf *name_buffer,
                die_errno("unable to make temporary pack file readable");
 
        idx_tmp_name = write_idx_file(NULL, written_list, nr_written,
-                                     pack_idx_opts, sha1);
+                                     pack_idx_opts, hash);
        if (adjust_shared_perm(idx_tmp_name))
                die_errno("unable to make temporary index file readable");
 
-       strbuf_addf(name_buffer, "%s.pack", sha1_to_hex(sha1));
+       strbuf_addf(name_buffer, "%s.pack", hash_to_hex(hash));
 
        if (rename(pack_tmp_name, name_buffer->buf))
                die_errno("unable to rename temporary pack file");
 
        strbuf_setlen(name_buffer, basename_len);
 
-       strbuf_addf(name_buffer, "%s.idx", sha1_to_hex(sha1));
+       strbuf_addf(name_buffer, "%s.idx", hash_to_hex(hash));
        if (rename(idx_tmp_name, name_buffer->buf))
                die_errno("unable to rename temporary index file");