{"thread":{"id":"5992","subject":"prune/prune-packed","startedAt":"2006-10-22T03:59:19Z","lastAt":"2006-10-22T23:14:22Z","messageCount":3,"participants":["J. Bruce Fields","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"29591","messageId":"20061022035919.GA4420@fieldses.org","threadId":"5992","inReplyTo":null,"subject":"prune/prune-packed","fromName":"J. Bruce Fields","fromEmail":"bfields@fieldses.org","sentAt":"2006-10-22T03:59:19Z","receivedAt":"2006-10-22T03:59:19Z","isPatch":false,"sender":{"key":"bfields@citi.umich.edu","avatar":null},"body":"Both \"man prune\" and everyday.txt say that git-prune also runs\ngit-prune-packed.  But that doesn't seem to be true.  Is the bug in the\ndocumentation?\n\n--b.\n"},{"id":"29592","messageId":"7vy7r954k7.fsf@assigned-by-dhcp.cox.net","threadId":"5992","inReplyTo":"20061022035919.GA4420@fieldses.org","subject":"Re: prune/prune-packed","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-10-22T04:59:20Z","receivedAt":"2006-10-22T04:59:20Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"J. Bruce Fields\" <bfields@fieldses.org> writes:\n\n> Both \"man prune\" and everyday.txt say that git-prune also runs\n> git-prune-packed.  But that doesn't seem to be true.  Is the bug in the\n> documentation?\n\nI think it is a regression when prune was rewritten as a\nbuilt-in.\n"},{"id":"29687","messageId":"20061022231422.GA9375@fieldses.org","threadId":"5992","inReplyTo":"7vy7r954k7.fsf@assigned-by-dhcp.cox.net","subject":"Re: prune/prune-packed","fromName":"J. Bruce Fields","fromEmail":"bfields@fieldses.org","sentAt":"2006-10-22T23:14:22Z","receivedAt":"2006-10-22T23:14:22Z","isPatch":false,"sender":{"key":"bfields@citi.umich.edu","avatar":null},"body":"On Sat, Oct 21, 2006 at 09:59:20PM -0700, Junio C Hamano wrote:\n> \"J. Bruce Fields\" <bfields@fieldses.org> writes:\n> \n> > Both \"man prune\" and everyday.txt say that git-prune also runs\n> > git-prune-packed.  But that doesn't seem to be true.  Is the bug in the\n> > documentation?\n> \n> I think it is a regression when prune was rewritten as a\n> built-in.\n\nSo would it be as simple as this?\n\n--b.\n\n>From d8a01cf8e2d4ccc02dc52fe5dd22b8462997c1ca Mon Sep 17 00:00:00 2001\nFrom: J. Bruce Fields <bfields@citi.umich.edu>\nDate: Sun, 22 Oct 2006 19:01:23 -0400\nSubject: [PATCH] Make prune also run prune-packed\n\nBoth the git-prune manpage and everday.txt say that git-prune should also prune\nunpacked objects that are also found in packs, by running git prune-packed.\n\nJunio thought this was \"a regression when prune was rewritten as a built-in.\"\n\nSo modify prune to call prune-packed again.\n\nSigned-off-by: J. Bruce Fields <bfields@citi.umich.edu>\n---\n builtin-prune-packed.c |   11 +++++------\n builtin-prune.c        |    2 ++\n builtin.h              |    1 +\n 3 files changed, 8 insertions(+), 6 deletions(-)\n\ndiff --git a/builtin-prune-packed.c b/builtin-prune-packed.c\nindex 960db49..e12b6cf 100644\n--- a/builtin-prune-packed.c\n+++ b/builtin-prune-packed.c\n@@ -4,9 +4,7 @@ #include \"cache.h\"\n static const char prune_packed_usage[] =\n \"git-prune-packed [-n]\";\n \n-static int dryrun;\n-\n-static void prune_dir(int i, DIR *dir, char *pathname, int len)\n+static void prune_dir(int i, DIR *dir, char *pathname, int len, int dryrun)\n {\n \tstruct dirent *de;\n \tchar hex[40];\n@@ -31,7 +29,7 @@ static void prune_dir(int i, DIR *dir, c\n \trmdir(pathname);\n }\n \n-static void prune_packed_objects(void)\n+void prune_packed_objects(int dryrun)\n {\n \tint i;\n \tstatic char pathname[PATH_MAX];\n@@ -50,7 +48,7 @@ static void prune_packed_objects(void)\n \t\td = opendir(pathname);\n \t\tif (!d)\n \t\t\tcontinue;\n-\t\tprune_dir(i, d, pathname, len + 3);\n+\t\tprune_dir(i, d, pathname, len + 3, dryrun);\n \t\tclosedir(d);\n \t}\n }\n@@ -58,6 +56,7 @@ static void prune_packed_objects(void)\n int cmd_prune_packed(int argc, const char **argv, const char *prefix)\n {\n \tint i;\n+\tint dryrun;\n \n \tfor (i = 1; i < argc; i++) {\n \t\tconst char *arg = argv[i];\n@@ -73,6 +72,6 @@ int cmd_prune_packed(int argc, const cha\n \t\tusage(prune_packed_usage);\n \t}\n \tsync();\n-\tprune_packed_objects();\n+\tprune_packed_objects(dryrun);\n \treturn 0;\n }\ndiff --git a/builtin-prune.c b/builtin-prune.c\nindex 6228c79..7290e6d 100644\n--- a/builtin-prune.c\n+++ b/builtin-prune.c\n@@ -255,5 +255,7 @@ int cmd_prune(int argc, const char **arg\n \n \tprune_object_dir(get_object_directory());\n \n+\tsync();\n+\tprune_packed_objects(show_only);\n \treturn 0;\n }\ndiff --git a/builtin.h b/builtin.h\nindex f9fa9ff..f71b962 100644\n--- a/builtin.h\n+++ b/builtin.h\n@@ -11,6 +11,7 @@ extern int mailinfo(FILE *in, FILE *out,\n extern int split_mbox(const char **mbox, const char *dir, int allow_bare, int nr_prec, int skip);\n extern void stripspace(FILE *in, FILE *out);\n extern int write_tree(unsigned char *sha1, int missing_ok, const char *prefix);\n+extern void prune_packed_objects(int);\n \n extern int cmd_add(int argc, const char **argv, const char *prefix);\n extern int cmd_apply(int argc, const char **argv, const char *prefix);\n-- \n1.4.3.1.g87b78\n"}]}