]> git.ipfire.org Git - thirdparty/git.git/commitdiff
csum-file: drop `hashfd_throughput()`
authorPatrick Steinhardt <ps@pks.im>
Fri, 13 Mar 2026 06:45:20 +0000 (07:45 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 13 Mar 2026 15:54:15 +0000 (08:54 -0700)
The `hashfd_throughput()` function is used by a single callsite in
git-pack-objects(1). In contrast to `hashfd()`, this function uses a
progress meter to measure throughput and a smaller buffer length so that
the progress meter can provide more granular metrics.

We're going to change that caller in the next commit to be a bit more
specific to packing objects. As such, `hashfd_throughput()` will be a
somewhat unfitting mechanism for any potential new callers.

Drop the function and replace it with a call to `hashfd_ext()`.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/pack-objects.c
csum-file.c
csum-file.h

index 5846b6a293a27b0841d54213cc71e616855e59f8..ba150a80ada2df880d0bed34fcebfc1248aa2b46 100644 (file)
@@ -1331,11 +1331,22 @@ static void write_pack_file(void)
                unsigned char hash[GIT_MAX_RAWSZ];
                char *pack_tmp_name = NULL;
 
-               if (pack_to_stdout)
-                       f = hashfd_throughput(the_repository->hash_algo, 1,
-                                             "<stdout>", progress_state);
-               else
+               if (pack_to_stdout) {
+                       /*
+                        * Since we are expecting to report progress of the
+                        * write into this hashfile, use a smaller buffer
+                        * size so the progress indicators arrive at a more
+                        * frequent rate.
+                        */
+                       struct hashfd_options opts = {
+                               .progress = progress_state,
+                               .buffer_len = 8 * 1024,
+                       };
+                       f = hashfd_ext(the_repository->hash_algo, 1,
+                                      "<stdout>", &opts);
+               } else {
                        f = create_tmp_packfile(the_repository, &pack_tmp_name);
+               }
 
                offset = write_pack_header(f, nr_remaining);
 
index a50416247edf2505a1b5612077e6453784ee46ed..5dfaca55435d8f9e15b53b8d3ac2b0394f7e1679 100644 (file)
@@ -197,22 +197,6 @@ struct hashfile *hashfd(const struct git_hash_algo *algop,
        return hashfd_ext(algop, fd, name, &opts);
 }
 
-struct hashfile *hashfd_throughput(const struct git_hash_algo *algop,
-                                  int fd, const char *name, struct progress *tp)
-{
-       /*
-        * Since we are expecting to report progress of the
-        * write into this hashfile, use a smaller buffer
-        * size so the progress indicators arrive at a more
-        * frequent rate.
-        */
-       struct hashfd_options opts = {
-               .progress = tp,
-               .buffer_len = 8 * 1024,
-       };
-       return hashfd_ext(algop, fd, name, &opts);
-}
-
 void hashfile_checkpoint_init(struct hashfile *f,
                              struct hashfile_checkpoint *checkpoint)
 {
index a03b60120d85f183ca2c7e5558ff217e00d9a86e..01472555c81e3b65797f697e4c4e596fc8d712c0 100644 (file)
@@ -63,8 +63,6 @@ struct hashfile *hashfd(const struct git_hash_algo *algop,
                        int fd, const char *name);
 struct hashfile *hashfd_check(const struct git_hash_algo *algop,
                              const char *name);
-struct hashfile *hashfd_throughput(const struct git_hash_algo *algop,
-                                  int fd, const char *name, struct progress *tp);
 
 /*
  * Free the hashfile without flushing its contents to disk. This only