aboutsummaryrefslogtreecommitdiffstats
path: root/builtin/ls-remote.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2018-10-31 00:24:42 -0400
committerJunio C Hamano <gitster@pobox.com>2018-10-31 13:40:11 +0900
commit6a139cdd74b867b5d717854155b4192e84c1f170 (patch)
tree4163da768eefbb64dbab0649a45ee0323417c81f /builtin/ls-remote.c
parent631f0f8c4b3cf86df13534be40b8df56c2fc6dda (diff)
downloadgit-6a139cdd74b867b5d717854155b4192e84c1f170.tar.gz
ls-remote: pass heads/tags prefixes to transport
Unlike its arbitrary text patterns, the --heads and --tags options to ls-remote are true prefixes. We can pass this information to the transport code. If the v2 protocol is in use, that will reduce the size of the ref advertisement. Note that the test added here succeeds both before and after the patch. This is an optimization, not a bug-fix; it's just making sure we didn't break anything. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/ls-remote.c')
-rw-r--r--builtin/ls-remote.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c
index dee9dd8534..71036b011e 100644
--- a/builtin/ls-remote.c
+++ b/builtin/ls-remote.c
@@ -92,6 +92,11 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
}
}
+ if (flags & REF_TAGS)
+ argv_array_push(&ref_prefixes, "refs/tags/");
+ if (flags & REF_HEADS)
+ argv_array_push(&ref_prefixes, "refs/heads/");
+
remote = remote_get(dest);
if (!remote) {
if (dest)