mirror of
https://github.com/git/git.git
synced 2026-01-09 09:36:36 +00:00
revision: add new parameter to exclude hidden refs
Users can optionally hide refs from remote users in git-upload-pack(1), git-receive-pack(1) and others via the `transfer.hideRefs`, but there is not an easy way to obtain the list of all visible or hidden refs right now. We'll require just that though for a performance improvement in our connectivity check. Add a new option `--exclude-hidden=` that excludes any hidden refs from the next pseudo-ref like `--all` or `--branches`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Taylor Blau <me@ttaylorr.com>
This commit is contained in:
committed by
Taylor Blau
parent
1e9f273ac0
commit
8c1bc2a71a
16
revision.h
16
revision.h
@@ -87,6 +87,19 @@ struct ref_exclusions {
|
||||
* patterns matches, the reference will be excluded.
|
||||
*/
|
||||
struct string_list excluded_refs;
|
||||
|
||||
/*
|
||||
* Hidden refs is a list of patterns that is to be hidden via
|
||||
* `ref_is_hidden()`.
|
||||
*/
|
||||
struct string_list hidden_refs;
|
||||
|
||||
/*
|
||||
* Indicates whether hidden refs have been configured. This is to
|
||||
* distinguish between no hidden refs existing and hidden refs not
|
||||
* being parsed.
|
||||
*/
|
||||
char hidden_refs_configured;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -94,6 +107,7 @@ struct ref_exclusions {
|
||||
*/
|
||||
#define REF_EXCLUSIONS_INIT { \
|
||||
.excluded_refs = STRING_LIST_INIT_DUP, \
|
||||
.hidden_refs = STRING_LIST_INIT_DUP, \
|
||||
}
|
||||
|
||||
struct oidset;
|
||||
@@ -456,10 +470,12 @@ void show_object_with_name(FILE *, struct object *, const char *);
|
||||
/**
|
||||
* Helpers to check if a reference should be excluded.
|
||||
*/
|
||||
|
||||
int ref_excluded(const struct ref_exclusions *exclusions, const char *path);
|
||||
void init_ref_exclusions(struct ref_exclusions *);
|
||||
void clear_ref_exclusions(struct ref_exclusions *);
|
||||
void add_ref_exclusion(struct ref_exclusions *, const char *exclude);
|
||||
void exclude_hidden_refs(struct ref_exclusions *, const char *section);
|
||||
|
||||
/**
|
||||
* This function can be used if you want to add commit objects as revision
|
||||
|
||||
Reference in New Issue
Block a user