[PATCH 2/2] builtin/symbolic-ref.c: add option to output shortened ref
From: Jan Krüger <hidden>
Date: 2016-06-15 22:53:10
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
In scripts meant to generate user-consumable output, it can be helpful to resolve a symbolic ref and output the result in a shortened form, such as for use in shell prompts. Add a new -s option to allow this. Signed-off-by: Jan Krüger <redacted> --- Documentation/git-symbolic-ref.txt | 6 +++++- builtin/symbolic-ref.c | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/Documentation/git-symbolic-ref.txt b/Documentation/git-symbolic-ref.txt
index a05819b..7f108ce 100644
--- a/Documentation/git-symbolic-ref.txt
+++ b/Documentation/git-symbolic-ref.txt@@ -8,7 +8,7 @@ git-symbolic-ref - Read and modify symbolic refs SYNOPSIS -------- [verse] -'git symbolic-ref' [-q] [-f] [-m <reason>] <name> [<ref>] +'git symbolic-ref' [-q] [-f] [-s] [-m <reason>] <name> [<ref>] DESCRIPTION -----------
@@ -38,6 +38,10 @@ OPTIONS not a symbolic ref; instead output the SHA1 value referenced by <name>. +-s:: + When showing the value of <name> as a symbolic ref, try to shorten the + value, e.g. from `refs/heads/master` to `master`. + -m:: Update the reflog for <name> with <reason>. This is valid only when creating or updating a symbolic ref.
diff --git a/builtin/symbolic-ref.c b/builtin/symbolic-ref.c
index 2e0a86f..df8da11 100644
--- a/builtin/symbolic-ref.c
+++ b/builtin/symbolic-ref.c@@ -9,6 +9,7 @@ static const char * const git_symbolic_ref_usage[] = { }; static int fallback_regular_ref; +static int shorten; static void check_symref(const char *HEAD, int quiet) {
@@ -32,6 +33,9 @@ static void check_symref(const char *HEAD, int quiet) exit(1); } } + if (shorten) + refs_heads_master = shorten_unambiguous_ref( + refs_heads_master, 0); puts(refs_heads_master); }
@@ -44,6 +48,7 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix) "suppress error message for non-symbolic (detached) refs"), OPT_BOOLEAN('f', NULL, &fallback_regular_ref, "fall back to showing as a regular ref"), + OPT_BOOLEAN('s', NULL, &shorten, "shorten ref output"), OPT_STRING('m', NULL, &msg, "reason", "reason of the update"), OPT_END(), };
--
1.7.9.2.302.g3724c.dirty