make prune report removed objects on -v

This adds an option "-v" which makes "git prune" more verbose:
It outputs all removed objects while removing them.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Michael J Gruber 2008-09-29 18:49:52 +02:00 committed by Shawn O. Pearce
parent 8b745e3ffd
commit b35ddf41ee
2 changed files with 11 additions and 4 deletions

View File

@ -8,7 +8,7 @@ git-prune - Prune all unreachable objects from the object database
SYNOPSIS SYNOPSIS
-------- --------
'git-prune' [-n] [--expire <expire>] [--] [<head>...] 'git-prune' [-n] [-v] [--expire <expire>] [--] [<head>...]
DESCRIPTION DESCRIPTION
----------- -----------
@ -34,6 +34,9 @@ OPTIONS
Do not remove anything; just report what it would Do not remove anything; just report what it would
remove. remove.
-v::
Report all removed objects.
\--:: \--::
Do not interpret any more arguments as options. Do not interpret any more arguments as options.

View File

@ -7,10 +7,11 @@
#include "parse-options.h" #include "parse-options.h"
static const char * const prune_usage[] = { static const char * const prune_usage[] = {
"git prune [-n] [--expire <time>] [--] [<head>...]", "git prune [-n] [-v] [--expire <time>] [--] [<head>...]",
NULL NULL
}; };
static int show_only; static int show_only;
static int verbose;
static unsigned long expire; static unsigned long expire;
static int prune_tmp_object(const char *path, const char *filename) static int prune_tmp_object(const char *path, const char *filename)
@ -39,11 +40,12 @@ static int prune_object(char *path, const char *filename, const unsigned char *s
if (st.st_mtime > expire) if (st.st_mtime > expire)
return 0; return 0;
} }
if (show_only) { if (show_only || verbose) {
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");
} else }
if (!show_only)
unlink(fullpath); unlink(fullpath);
return 0; return 0;
} }
@ -135,6 +137,8 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
const struct option options[] = { const struct option options[] = {
OPT_BOOLEAN('n', NULL, &show_only, OPT_BOOLEAN('n', NULL, &show_only,
"do not remove, show only"), "do not remove, show only"),
OPT_BOOLEAN('v', NULL, &verbose,
"report pruned objects"),
OPT_DATE(0, "expire", &expire, OPT_DATE(0, "expire", &expire,
"expire objects older than <time>"), "expire objects older than <time>"),
OPT_END() OPT_END()