mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
Don't create a final empty packfile in fast-import.
If the last packfile is going to be empty (has 0 objects) then it shouldn't be kept after the import has terminated, as there is no point to the packfile. So rather than hashing it and making the index file, just delete the packfile. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
7bfe6e2613
commit
3e005baf85
|
@ -713,17 +713,23 @@ static void end_packfile()
|
||||||
{
|
{
|
||||||
struct packed_git *old_p = pack_data, *new_p;
|
struct packed_git *old_p = pack_data, *new_p;
|
||||||
|
|
||||||
fixup_header_footer();
|
if (object_count) {
|
||||||
write_index(idx_name);
|
fixup_header_footer();
|
||||||
|
write_index(idx_name);
|
||||||
|
|
||||||
/* Register the packfile with core git's machinary. */
|
/* Register the packfile with core git's machinary. */
|
||||||
new_p = add_packed_git(idx_name, strlen(idx_name), 1);
|
new_p = add_packed_git(idx_name, strlen(idx_name), 1);
|
||||||
if (!new_p)
|
if (!new_p)
|
||||||
die("core git rejected index %s", idx_name);
|
die("core git rejected index %s", idx_name);
|
||||||
new_p->windows = old_p->windows;
|
new_p->windows = old_p->windows;
|
||||||
new_p->pack_fd = old_p->pack_fd;
|
new_p->pack_fd = old_p->pack_fd;
|
||||||
all_packs[pack_id++] = new_p;
|
all_packs[pack_id++] = new_p;
|
||||||
install_packed_git(new_p);
|
install_packed_git(new_p);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
close(pack_fd);
|
||||||
|
unlink(old_p->pack_name);
|
||||||
|
}
|
||||||
free(old_p);
|
free(old_p);
|
||||||
free(idx_name);
|
free(idx_name);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue