# [PATCH] fast-import: use write_pack_header()

2 messages from 2020-09-06 to 2020-09-10. Participants: René Scharfe, Jeff King.
Thread: https://gitlist.dev/t/54196

## René Scharfe, 2020-09-06 08:39

Subject: [PATCH] fast-import: use write_pack_header()
Message-ID: <7613ef32-f39c-ea4b-1cfc-88d255307186@web.de>
URL: https://gitlist.dev/e/7613ef32-f39c-ea4b-1cfc-88d255307186%40web.de

```
Call write_pack_header() to hash and write a pack header instead of
open-coding this function.  This gets rid of duplicate code and of the
magic version number 2 -- which has been used here since c90be46abd
(Changed fast-import's pack header creation to use pack.h, 2006-08-16)
and in pack.h (again) since 29f049a0c2 (Revert "move pack creation to
version 3", 2006-10-14).

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 builtin/fast-import.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/builtin/fast-import.c b/builtin/fast-import.c
index 1c85eafe43..1bf50a73dc 100644
--- a/builtin/fast-import.c
+++ b/builtin/fast-import.c
@@ -739,7 +739,6 @@ static void start_packfile(void)
 {
 	struct strbuf tmp_file = STRBUF_INIT;
 	struct packed_git *p;
-	struct pack_header hdr;
 	int pack_fd;

 	pack_fd = odb_mkstemp(&tmp_file, "pack/tmp_pack_XXXXXX");
@@ -750,13 +749,8 @@ static void start_packfile(void)
 	p->do_not_close = 1;
 	pack_file = hashfd(pack_fd, p->pack_name);

-	hdr.hdr_signature = htonl(PACK_SIGNATURE);
-	hdr.hdr_version = htonl(2);
-	hdr.hdr_entries = 0;
-	hashwrite(pack_file, &hdr, sizeof(hdr));
-
 	pack_data = p;
-	pack_size = sizeof(hdr);
+	pack_size = write_pack_header(pack_file, 0);
 	object_count = 0;

 	REALLOC_ARRAY(all_packs, pack_id + 1);
--
2.28.0

```

## Jeff King, 2020-09-10 12:41

Subject: Re: [PATCH] fast-import: use write_pack_header()
Message-ID: <20200910124128.GA58063@coredump.intra.peff.net>
URL: https://gitlist.dev/e/20200910124128.GA58063%40coredump.intra.peff.net
In-Reply-To: <7613ef32-f39c-ea4b-1cfc-88d255307186@web.de>

```
On Sun, Sep 06, 2020 at 10:39:23AM +0200, René Scharfe wrote:

> Call write_pack_header() to hash and write a pack header instead of
> open-coding this function.  This gets rid of duplicate code and of the
> magic version number 2 -- which has been used here since c90be46abd
> (Changed fast-import's pack header creation to use pack.h, 2006-08-16)
> and in pack.h (again) since 29f049a0c2 (Revert "move pack creation to
> version 3", 2006-10-14).

I think this is worth doing. It locks us into using PACK_VERSION, but
that has been constant for quite a long time now. If we ever finally
have a v4 pack, I expect write_pack_header would grow a version option
and we could deal with it then. :)

-Peff

```
