提交 b35ddf41 编写于 作者: M Michael J Gruber 提交者: Shawn O. Pearce

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: NMichael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
上级 8b745e3f
...@@ -8,7 +8,7 @@ git-prune - Prune all unreachable objects from the object database ...@@ -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 ...@@ -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.
......
...@@ -7,10 +7,11 @@ ...@@ -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 ...@@ -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) ...@@ -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()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册