refs.h: implement hidden_refs_to_excludes()
In subsequent commits, we'll teach `receive-pack` and `upload-pack` to use the new jump list feature in the packed-refs iterator by ignoring references which are mentioned via its respective hideRefs lists. However, the packed-ref jump lists cannot handle un-hiding rules (that begin with '!'), or namespace comparisons (that begin with '^'). Add a convenience function to the refs.h API to detect when either of these conditions are met, and returns an appropriate value to pass as excluded patterns. Suggested-by: Jeff King <peff@peff.net> 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
e6bf24d39a
commit
15af64dcfd
6
refs.h
6
refs.h
@ -831,6 +831,12 @@ int parse_hide_refs_config(const char *var, const char *value, const char *,
|
||||
*/
|
||||
int ref_is_hidden(const char *, const char *, const struct strvec *);
|
||||
|
||||
/*
|
||||
* Returns an array of patterns to use as excluded_patterns, if none of the
|
||||
* hidden references use the token '!' or '^'.
|
||||
*/
|
||||
const char **hidden_refs_to_excludes(const struct strvec *hide_refs);
|
||||
|
||||
/* Is this a per-worktree ref living in the refs/ namespace? */
|
||||
int is_per_worktree_ref(const char *refname);
|
||||
|
||||
|
Reference in New Issue
Block a user