minor git-prune optimization
Don't try to remove the containing directory for every pruned object but try only once after the directory has been scanned instead. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
5721685699
commit
3254d218b4
@ -14,10 +14,8 @@ static int prune_object(char *path, const char *filename, const unsigned char *s
|
|||||||
enum object_type type = sha1_object_info(sha1, NULL);
|
enum object_type type = sha1_object_info(sha1, NULL);
|
||||||
printf("%s %s\n", sha1_to_hex(sha1),
|
printf("%s %s\n", sha1_to_hex(sha1),
|
||||||
(type > 0) ? typename(type) : "unknown");
|
(type > 0) ? typename(type) : "unknown");
|
||||||
return 0;
|
} else
|
||||||
}
|
unlink(mkpath("%s/%s", path, filename));
|
||||||
unlink(mkpath("%s/%s", path, filename));
|
|
||||||
rmdir(path);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,6 +58,8 @@ static int prune_dir(int i, char *path)
|
|||||||
}
|
}
|
||||||
fprintf(stderr, "bad sha1 file: %s/%s\n", path, de->d_name);
|
fprintf(stderr, "bad sha1 file: %s/%s\n", path, de->d_name);
|
||||||
}
|
}
|
||||||
|
if (!show_only)
|
||||||
|
rmdir(path);
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user