mirror of
https://github.com/libgit2/libgit2.git
synced 2026-01-25 11:06:32 +00:00
filter: add GIT_FILTER_NO_SYSTEM_ATTRIBUTES option
Allow system-wide attributes (the ones specified in `/etc/gitattributes`) to be ignored if the flag `GIT_FILTER_NO_SYSTEM_ATTRIBUTES` is specified.
This commit is contained in:
@@ -43,6 +43,9 @@ typedef enum {
|
||||
|
||||
/** Don't error for `safecrlf` violations, allow them to continue. */
|
||||
GIT_FILTER_ALLOW_UNSAFE = (1u << 0),
|
||||
|
||||
/** Don't load `/etc/gitattributes` (or the system equivalent) */
|
||||
GIT_FILTER_NO_SYSTEM_ATTRIBUTES = (1u << 1),
|
||||
} git_filter_flag_t;
|
||||
|
||||
/**
|
||||
|
||||
11
src/filter.c
11
src/filter.c
@@ -428,13 +428,18 @@ static int filter_list_check_attributes(
|
||||
git_filter_def *fdef,
|
||||
const git_filter_source *src)
|
||||
{
|
||||
int error;
|
||||
size_t i;
|
||||
const char **strs = git__calloc(fdef->nattrs, sizeof(const char *));
|
||||
uint32_t flags = 0;
|
||||
size_t i;
|
||||
int error;
|
||||
|
||||
GIT_ERROR_CHECK_ALLOC(strs);
|
||||
|
||||
if ((src->flags & GIT_FILTER_NO_SYSTEM_ATTRIBUTES) != 0)
|
||||
flags |= GIT_ATTR_CHECK_NO_SYSTEM;
|
||||
|
||||
error = git_attr_get_many_with_session(
|
||||
strs, repo, attr_session, 0, src->path, fdef->nattrs, fdef->attrs);
|
||||
strs, repo, attr_session, flags, src->path, fdef->nattrs, fdef->attrs);
|
||||
|
||||
/* if no values were found but no matches are needed, it's okay! */
|
||||
if (error == GIT_ENOTFOUND && !fdef->nmatches) {
|
||||
|
||||
Reference in New Issue
Block a user