aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2026-03-13 07:45:20 +0100
committerJunio C Hamano <gitster@pobox.com>2026-03-13 08:54:15 -0700
commit2bf8f36ddb308b084912f8265ad6fd60df34a036 (patch)
tree95a19ab2fbfdec7295777e4ca417253771231850
parenta1118c0a44606e0b71e515b05112ff38fef989c0 (diff)
downloadgit-2bf8f36ddb308b084912f8265ad6fd60df34a036.tar.xz
csum-file: drop `hashfd_throughput()`
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>
-rw-r--r--builtin/pack-objects.c19
-rw-r--r--csum-file.c16
-rw-r--r--csum-file.h2
3 files changed, 15 insertions, 22 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 5846b6a293..ba150a80ad 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -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);
diff --git a/csum-file.c b/csum-file.c
index a50416247e..5dfaca5543 100644
--- a/csum-file.c
+++ b/csum-file.c
@@ -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)
{
diff --git a/csum-file.h b/csum-file.h
index a03b60120d..01472555c8 100644
--- a/csum-file.h
+++ b/csum-file.h
@@ -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