mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
revision.h: store hidden refs in a strvec
In subsequent commits, it will be convenient to have a 'const char **'
of hidden refs (matching `transfer.hiderefs`, `uploadpack.hideRefs`,
etc.), instead of a `string_list`.
Convert spots throughout the tree that store the list of hidden refs
from a `string_list` to a `strvec`.
Note that in `parse_hide_refs_config()` there is an ugly const-cast used
to avoid an extra copy of each value before trimming any trailing slash
characters. This could instead be written as:
ref = xstrdup(value);
len = strlen(ref);
while (len && ref[len - 1] == '/')
ref[--len] = '\0';
strvec_push(hide_refs, ref);
free(ref);
but the double-copy (once when calling `xstrdup()`, and another via
`strvec_push()`) is wasteful.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
c489f47a64
commit
c45841fff8
@@ -72,7 +72,7 @@ struct ls_refs_data {
|
||||
unsigned symrefs;
|
||||
struct strvec prefixes;
|
||||
struct strbuf buf;
|
||||
struct string_list hidden_refs;
|
||||
struct strvec hidden_refs;
|
||||
unsigned unborn : 1;
|
||||
};
|
||||
|
||||
@@ -155,7 +155,7 @@ int ls_refs(struct repository *r, struct packet_reader *request)
|
||||
memset(&data, 0, sizeof(data));
|
||||
strvec_init(&data.prefixes);
|
||||
strbuf_init(&data.buf, 0);
|
||||
string_list_init_dup(&data.hidden_refs);
|
||||
strvec_init(&data.hidden_refs);
|
||||
|
||||
git_config(ls_refs_config, &data);
|
||||
|
||||
@@ -197,7 +197,7 @@ int ls_refs(struct repository *r, struct packet_reader *request)
|
||||
packet_fflush(stdout);
|
||||
strvec_clear(&data.prefixes);
|
||||
strbuf_release(&data.buf);
|
||||
string_list_clear(&data.hidden_refs, 0);
|
||||
strvec_clear(&data.hidden_refs);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user