diff options
author | Thomas Gummerer <t.gummerer@gmail.com> | 2016-01-19 02:20:50 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-01-19 21:07:56 +0300 |
commit | 99c08d4eb28f0525d71125e7903fd4462bfd6787 (patch) | |
tree | 3b08569626d8d45f67497d3a4acc5d4605e2e0f9 /builtin | |
parent | ba5f28bf79ea652fbe2be12f5ca6b351bb6ad591 (diff) |
ls-remote: add support for showing symrefs
Sometimes it's useful to know the main branch of a git repository
without actually downloading the repository. This can be done by
looking at the symrefs stored in the remote repository. Currently git
doesn't provide a simple way to show the symrefs stored on the remote
repository, even though the information is available. Add a --symref
command line argument to the ls-remote command, which shows the symrefs
in the remote repository.
While there, replace a literal tab in the format string with \t to make
it more obvious to the reader.
Suggested-by: pedro rijo <pedrorijo91@gmail.com>
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/ls-remote.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c index 3a20378b8f5..66cdd45cc10 100644 --- a/builtin/ls-remote.c +++ b/builtin/ls-remote.c @@ -5,7 +5,8 @@ static const char * const ls_remote_usage[] = { N_("git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n" - " [-q | --quiet] [--exit-code] [--get-url] [<repository> [<refs>...]]"), + " [-q | --quiet] [--exit-code] [--get-url]\n" + " [--symref] [<repository> [<refs>...]]"), NULL }; @@ -37,6 +38,7 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix) int get_url = 0; int quiet = 0; int status = 0; + int show_symref_target = 0; const char *uploadpack = NULL; const char **pattern = NULL; @@ -58,6 +60,8 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix) N_("take url.<base>.insteadOf into account")), OPT_SET_INT(0, "exit-code", &status, N_("exit with exit code 2 if no matching refs are found"), 2), + OPT_BOOL(0, "symref", &show_symref_target, + N_("show underlying ref in addition to the object pointed by it")), OPT_END() }; @@ -101,7 +105,9 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix) continue; if (!tail_match(pattern, ref->name)) continue; - printf("%s %s\n", oid_to_hex(&ref->old_oid), ref->name); + if (show_symref_target && ref->symref) + printf("ref: %s\t%s\n", ref->symref, ref->name); + printf("%s\t%s\n", oid_to_hex(&ref->old_oid), ref->name); status = 0; /* we found something */ } return status; |