]> git.ipfire.org Git - thirdparty/git.git/blobdiff - builtin/repack.c
Merge branch 'wb/midx-progress'
[thirdparty/git.git] / builtin / repack.c
index 3b3dd1437299a53a9031572820c12f3269922695..0781763b06e80d0188acfe3c902061729b762809 100644 (file)
@@ -191,7 +191,7 @@ static int write_oid(const struct object_id *oid, struct packed_git *pack,
                        die(_("could not start pack-objects to repack promisor objects"));
        }
 
-       xwrite(cmd->in, oid_to_hex(oid), GIT_SHA1_HEXSZ);
+       xwrite(cmd->in, oid_to_hex(oid), the_hash_algo->hexsz);
        xwrite(cmd->in, "\n", 1);
        return 0;
 }
@@ -233,6 +233,13 @@ static void repack_promisor_objects(const struct pack_objects_args *args,
                /*
                 * pack-objects creates the .pack and .idx files, but not the
                 * .promisor file. Create the .promisor file, which is empty.
+                *
+                * NEEDSWORK: fetch-pack sometimes generates non-empty
+                * .promisor files containing the ref names and associated
+                * hashes at the point of generation of the corresponding
+                * packfile, but this would not preserve their contents. Maybe
+                * concatenate the contents of all .promisor files instead of
+                * just creating a new empty file.
                 */
                promisor_name = mkpathdup("%s-%s.promisor", packtmp,
                                          line.buf);
@@ -562,7 +569,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
        remove_temporary_files();
 
        if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0))
-               write_midx_file(get_object_directory());
+               write_midx_file(get_object_directory(), 0);
 
        string_list_clear(&names, 0);
        string_list_clear(&rollback, 0);