summaryrefslogtreecommitdiff
path: root/builtin-pack-objects.c
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2008-12-09 14:26:52 -0500
committerJunio C Hamano <gitster@pobox.com>2008-12-10 17:56:05 -0800
commitc74faea19e39ca933492f697596310397175c329 (patch)
tree8d98539f02bf7bcc82c43f466feae01dbf0de9bc /builtin-pack-objects.c
parentaa971cb9bf4105eefb435b9e6f282f019529c35f (diff)
downloadgit-c74faea19e39ca933492f697596310397175c329.tar.gz
make sure packs to be replaced are closed beforehand
Especially on Windows where an opened file cannot be replaced, make sure pack-objects always close packs it is about to replace. Even on non Windows systems, this could save potential bad results if ever objects were to be read from the new pack file using offset from the old index. This should fix t5303 on Windows. Signed-off-by: Nicolas Pitre <nico@cam.org> Tested-by: Johannes Sixt <j6t@kdbg.org> (MinGW) Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-pack-objects.c')
-rw-r--r--builtin-pack-objects.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index 4411a480c1..fb5e14d56e 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -520,6 +520,7 @@ static void write_pack_file(void)
snprintf(tmpname, sizeof(tmpname), "%s-%s.pack",
base_name, sha1_to_hex(sha1));
+ free_pack_by_name(tmpname);
if (adjust_perm(pack_tmp_name, mode))
die("unable to make temporary pack file readable: %s",
strerror(errno));