X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin-prune.c;h=d853902c51e78800b76cf4714dffaa79600d3e53;hb=73bcf53342f16a66ae4e02ed50a08bd34d846bfb;hp=d196c41f13aee5992fe60febffa01ed4d640a97b;hpb=bf6d324e7333f62f6aee56ebb886e82e1f49e1ce;p=git.git diff --git a/builtin-prune.c b/builtin-prune.c index d196c41f1..d853902c5 100644 --- a/builtin-prune.c +++ b/builtin-prune.c @@ -10,8 +10,8 @@ #include "builtin.h" #include "cache-tree.h" -static const char prune_usage[] = "git prune [-n]"; -static int show_only = 0; +static const char prune_usage[] = "git-prune [-n]"; +static int show_only; static struct rev_info revs; static int prune_object(char *path, const char *filename, const unsigned char *sha1) @@ -106,7 +106,7 @@ static void process_tree(struct tree *tree, obj->flags |= SEEN; if (parse_tree(tree) < 0) die("bad tree object %s", sha1_to_hex(obj->sha1)); - name = strdup(name); + name = xstrdup(name); add_object(obj, p, path, name); me.up = path; me.elem = name; @@ -174,7 +174,7 @@ static void walk_commit_list(struct rev_info *revs) } } -static int add_one_ref(const char *path, const unsigned char *sha1) +static int add_one_ref(const char *path, const unsigned char *sha1, int flag, void *cb_data) { struct object *object = parse_object(sha1); if (!object) @@ -217,7 +217,7 @@ static void add_cache_refs(void) add_cache_tree(active_cache_tree); } -int cmd_prune(int argc, const char **argv, char **envp) +int cmd_prune(int argc, const char **argv, const char *prefix) { int i; @@ -234,13 +234,13 @@ int cmd_prune(int argc, const char **argv, char **envp) * Set up revision parsing, and mark us as being interested * in all object types, not just commits. */ - init_revisions(&revs); + init_revisions(&revs, prefix); revs.tag_objects = 1; revs.blob_objects = 1; revs.tree_objects = 1; /* Add all external refs */ - for_each_ref(add_one_ref); + for_each_ref(add_one_ref, NULL); /* Add all refs from the index file */ add_cache_refs(); @@ -255,5 +255,7 @@ int cmd_prune(int argc, const char **argv, char **envp) prune_object_dir(get_object_directory()); + sync(); + prune_packed_objects(show_only); return 0; }