path: root/refs.h
diff options
authorBrandon Williams <>2018-03-15 17:31:24 (GMT)
committerJunio C Hamano <>2018-03-15 19:01:08 (GMT)
commitb4be74105febef5c6235e1e2f1e468e76166cad8 (patch)
treeeb61d2519d6f2ef3e3014dc1fd0d754a6b0a2934 /refs.h
parent1af8ae1cfa44a3f3c3f1efb7f9ebe68bc0ce7578 (diff)
ls-remote: pass ref prefixes when requesting a remote's refs
Construct an argv_array of ref prefixes based on the patterns supplied via the command line and pass them to 'transport_get_remote_refs()' to be used when communicating protocol v2 so that the server can limit the ref advertisement based on those prefixes. Signed-off-by: Brandon Williams <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'refs.h')
1 files changed, 7 insertions, 0 deletions
diff --git a/refs.h b/refs.h
index 01be5ae..93b6dce 100644
--- a/refs.h
+++ b/refs.h
@@ -139,6 +139,13 @@ int resolve_gitlink_ref(const char *submodule, const char *refname,
int refname_match(const char *abbrev_name, const char *full_name);
+ * Given a 'prefix' expand it by the rules in 'ref_rev_parse_rules' and add
+ * the results to 'prefixes'
+ */
+struct argv_array;
+void expand_ref_prefix(struct argv_array *prefixes, const char *prefix);
int expand_ref(const char *str, int len, struct object_id *oid, char **ref);
int dwim_ref(const char *str, int len, struct object_id *oid, char **ref);
int dwim_log(const char *str, int len, struct object_id *oid, char **ref);