Code

fast-import: close pack before unlinking it
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Mon, 15 Dec 2008 21:11:40 +0000 (22:11 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 16 Dec 2008 07:04:48 +0000 (23:04 -0800)
This is sort of a companion patch to 4723ee9(Close files opened by
lock_file() before unlinking.): on Windows, you cannot delete what
is still open.

This makes test 9300-fast-import pass on Windows for me; quite a few
fast-imports leave temporary packs until the test "blank lines not
necessary after other commands" actually tests for the number of files
in .git/objects/pack/, which has a few temporary packs now.

I guess that 8b4eb6b(Do not perform cross-directory renames when
creating packs) was "responsible" for the breakage.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
fast-import.c

index 5473cd4d626c1260cf1a192ab05cc63c37a8fbcb..13b36147a46390aa9fe3461eead08be7dadc35cd 100644 (file)
@@ -982,8 +982,10 @@ static void end_packfile(void)
 
                pack_id++;
        }
-       else
+       else {
+               close(old_p->pack_fd);
                unlink(old_p->pack_name);
+       }
        free(old_p);
 
        /* We can't carry a delta across packfiles. */