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 <jk@xxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html