git-log: allow --decorate[=short|full]
Commit de435ac0 changed the behavior of --decorate from printing the
full ref (e.g., "refs/heads/master") to a shorter, more human-readable
version (e.g., just "master"). While this is nice for human readers,
external tools using the output from "git log" may prefer the full
version.
This patch introduces an extension to --decorate to allow the caller to
specify either the short or the full versions.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
64d5fe0a23
commit
33e7018c45
@ -35,6 +35,7 @@ static void cmd_log_init(int argc, const char **argv, const char *prefix,
|
||||
struct rev_info *rev)
|
||||
{
|
||||
int i;
|
||||
int decoration_style = 0;
|
||||
|
||||
rev->abbrev = DEFAULT_ABBREV;
|
||||
rev->commit_format = CMIT_FMT_DEFAULT;
|
||||
@ -61,8 +62,15 @@ static void cmd_log_init(int argc, const char **argv, const char *prefix,
|
||||
for (i = 1; i < argc; i++) {
|
||||
const char *arg = argv[i];
|
||||
if (!strcmp(arg, "--decorate")) {
|
||||
load_ref_decorations();
|
||||
rev->show_decorations = 1;
|
||||
decoration_style = DECORATE_SHORT_REFS;
|
||||
} else if (!prefixcmp(arg, "--decorate=")) {
|
||||
const char *v = skip_prefix(arg, "--decorate=");
|
||||
if (!strcmp(v, "full"))
|
||||
decoration_style = DECORATE_FULL_REFS;
|
||||
else if (!strcmp(v, "short"))
|
||||
decoration_style = DECORATE_SHORT_REFS;
|
||||
else
|
||||
die("invalid --decorate option: %s", arg);
|
||||
} else if (!strcmp(arg, "--source")) {
|
||||
rev->show_source = 1;
|
||||
} else if (!strcmp(arg, "-h")) {
|
||||
@ -70,6 +78,10 @@ static void cmd_log_init(int argc, const char **argv, const char *prefix,
|
||||
} else
|
||||
die("unrecognized argument: %s", arg);
|
||||
}
|
||||
if (decoration_style) {
|
||||
rev->show_decorations = 1;
|
||||
load_ref_decorations(decoration_style);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user