X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin-prune.c;h=44df59e4a70f84cdebac94f2591765ada8d4b92d;hb=b4833a2c62578bdbfd300e296702214cb1b9a601;hp=7929af1aacd515bcc49bb79e9e3d8ee616397b4f;hpb=9b088c4e394df84232cfd37aea78349a495b09c1;p=git.git diff --git a/builtin-prune.c b/builtin-prune.c index 7929af1aa..44df59e4a 100644 --- a/builtin-prune.c +++ b/builtin-prune.c @@ -5,25 +5,17 @@ #include "builtin.h" #include "reachable.h" -static const char prune_usage[] = "git-prune [-n] [--grace=time]"; +static const char prune_usage[] = "git-prune [-n]"; static int show_only; -static int prune_grace_period; static int prune_object(char *path, const char *filename, const unsigned char *sha1) { - char buf[20]; - const char *type; - if (show_only) { - if (sha1_object_info(sha1, buf, NULL)) - type = "unknown"; - else - type = buf; - printf("%s %s\n", sha1_to_hex(sha1), type); - return 0; - } - unlink(mkpath("%s/%s", path, filename)); - rmdir(path); + enum object_type type = sha1_object_info(sha1, NULL); + printf("%s %s\n", sha1_to_hex(sha1), + (type > 0) ? typename(type) : "unknown"); + } else + unlink(mkpath("%s/%s", path, filename)); return 0; } @@ -39,7 +31,6 @@ static int prune_dir(int i, char *path) char name[100]; unsigned char sha1[20]; int len = strlen(de->d_name); - struct stat st; switch (len) { case 2: @@ -62,16 +53,13 @@ static int prune_dir(int i, char *path) if (lookup_object(sha1)) continue; - if (prune_grace_period > 0 && - !stat(mkpath("%s/%s", path, de->d_name), &st) && - st.st_mtime > prune_grace_period) - continue; - prune_object(path, de->d_name, sha1); continue; } fprintf(stderr, "bad sha1 file: %s/%s\n", path, de->d_name); } + if (!show_only) + rmdir(path); closedir(dir); return 0; } @@ -86,25 +74,10 @@ static void prune_object_dir(const char *path) } } -static int git_prune_config(const char *var, const char *value) -{ - if (!strcmp(var, "gc.prunegrace")) { - if (!strcmp(value, "off")) - prune_grace_period = 0; - else - prune_grace_period = approxidate(value); - return 0; - } - return git_default_config(var, value); -} - int cmd_prune(int argc, const char **argv, const char *prefix) { int i; struct rev_info revs; - prune_grace_period = time(NULL)-24*60*60; - - git_config(git_prune_config); for (i = 1; i < argc; i++) { const char *arg = argv[i]; @@ -112,13 +85,6 @@ int cmd_prune(int argc, const char **argv, const char *prefix) show_only = 1; continue; } - if (!strncmp(arg, "--grace=", 8)) { - if (!strcmp(arg+8, "off")) - prune_grace_period = 0; - else - prune_grace_period = approxidate(arg+8); - continue; - } usage(prune_usage); }