diff mbox series

fast-import: use write_pack_header()

Message ID 7613ef32-f39c-ea4b-1cfc-88d255307186@web.de (mailing list archive)
State New, archived
Headers show
Series fast-import: use write_pack_header() | expand

Commit Message

René Scharfe Sept. 6, 2020, 8:39 a.m. UTC
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(-)

--
2.28.0

Comments

Jeff King Sept. 10, 2020, 12:41 p.m. UTC | #1
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
diff mbox series

Patch

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);