{"thread":{"id":"7344","subject":"[PATCH] minor git-prune optimization","startedAt":"2007-03-21T03:32:13Z","lastAt":"2007-03-21T03:32:13Z","messageCount":1,"participants":["Nicolas Pitre"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"37656","messageId":"alpine.LFD.0.83.0703202326380.18328@xanadu.home","threadId":"7344","inReplyTo":null,"subject":"[PATCH] minor git-prune optimization","fromName":"Nicolas Pitre","fromEmail":"nico@cam.org","sentAt":"2007-03-21T03:32:13Z","receivedAt":"2007-03-21T03:32:13Z","isPatch":true,"sender":{"key":"nico@fluxnic.net","avatar":"https://avatars.githubusercontent.com/u/702790?v=4"},"body":"Don't try to remove the containing directory for every pruned object but\ntry only once after the directory has been scanned instead.\n\nSigned-off-by: Nicolas Pitre <nico@cam.org>\n---\n\ndiff --git a/builtin-prune.c b/builtin-prune.c\nindex 09864b7..44df59e 100644\n--- a/builtin-prune.c\n+++ b/builtin-prune.c\n@@ -14,10 +14,8 @@ static int prune_object(char *path, const char *filename, const unsigned char *s\n \t\tenum object_type type = sha1_object_info(sha1, NULL);\n \t\tprintf(\"%s %s\\n\", sha1_to_hex(sha1),\n \t\t       (type > 0) ? typename(type) : \"unknown\");\n-\t\treturn 0;\n-\t}\n-\tunlink(mkpath(\"%s/%s\", path, filename));\n-\trmdir(path);\n+\t} else\n+\t\tunlink(mkpath(\"%s/%s\", path, filename));\n \treturn 0;\n }\n \n@@ -60,6 +58,8 @@ static int prune_dir(int i, char *path)\n \t\t}\n \t\tfprintf(stderr, \"bad sha1 file: %s/%s\\n\", path, de->d_name);\n \t}\n+\tif (!show_only)\n+\t\trmdir(path);\n \tclosedir(dir);\n \treturn 0;\n }\n"}]}