git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/8] git-repack --max-pack-size: minor code restructuring

From
DHDana How <danahow@gmail.com>
Date
Apr 8, 2007, 23:20 UTC
Message-ID
<461978BD.4080201@gmail.com>

Move the call to write_index_file() from cmd_pack_objects() to write_pack_file() (since only the latter will know how many times to call write_index_file()), and move or add forward declarations for later changes.

Signed-off-by: Dana How <how@deathvalley.cswitch.com>
---
 builtin-pack-objects.c |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index 64318b3..8415549 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -518,6 +518,16 @@ static off_t write_one(struct sha1file *f,
 	return offset + write_object(f, e);
 }
 
+typedef int (*entry_sort_t)(const struct object_entry *, const struct object_entry *);
+
+static entry_sort_t current_sort;
+
+/* forward declarations for write_pack_file */
+/* (probably should move sorting stuff up here) */
+static int sort_comparator(const void *_a, const void *_b);
+static int sha1_sort(const struct object_entry *a, const struct object_entry *b);
+static void write_index_file(void);
+
 static void write_pack_file(void)
 {
 	uint32_t i;
@@ -562,6 +572,10 @@ static void write_pack_file(void)
 	if (written != nr_result)
 		die("wrote %u objects while expecting %u", written, nr_result);
 	sha1close(f, pack_file_sha1, 1);
+	if (!pack_to_stdout) {
+		write_index_file();
+		puts(sha1_to_hex(object_list_sha1));
+	}
 }
 
 static void write_index_file(void)
@@ -1106,10 +1120,6 @@ static void get_object_details(void)
 	}
 }
 
-typedef int (*entry_sort_t)(const struct object_entry *, const struct object_entry *);
-
-static entry_sort_t current_sort;
-
 static int sort_comparator(const void *_a, const void *_b)
 {
 	struct object_entry *a = *(struct object_entry **)_a;
@@ -1698,10 +1708,6 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
 			progress_update = 0;
 		}
 		write_pack_file();
-		if (!pack_to_stdout) {
-			write_index_file();
-			puts(sha1_to_hex(object_list_sha1));
-		}
 	}
 	if (progress)
 		fprintf(stderr, "Total %u (delta %u), reused %u (delta %u)\n",
-- 
1.5.1.89.g8abf0
Message 1 of 1 in “git-repack --max-pack-size: minor code restructuring”
  1. 2/8 git-repack --max-pack-size: minor code restructuringDana How, Apr 8, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.