line |
true |
false |
branch |
56
|
0 |
0 |
if ((rule->flags & GIT_ATTR_FNMATCH_NEGATIVE) != 0 |
57
|
0 |
0 |
|| (neg->flags & GIT_ATTR_FNMATCH_NEGATIVE) == 0) |
60
|
0 |
0 |
if (neg->flags & GIT_ATTR_FNMATCH_ICASE) |
66
|
0 |
0 |
if (rule->length == neg->length) { |
68
|
0 |
0 |
} else if (rule->length < neg->length) { |
82
|
0 |
0 |
if (p[-1] != '/') |
84
|
0 |
0 |
if (memchr(shorter->pattern, '/', shorter->length) != NULL) |
114
|
0 |
0 |
if (match->flags & GIT_ATTR_FNMATCH_ICASE) |
118
|
0 |
0 |
if (match->containing_dir) { |
121
|
0 |
0 |
if (git_str_puts(&buf, match->pattern) < 0) |
126
|
0 |
0 |
git_vector_foreach(rules, i, rule) { |
127
|
0 |
0 |
if (!(rule->flags & GIT_ATTR_FNMATCH_HASWILD)) { |
128
|
0 |
0 |
if (does_negate_pattern(rule, match)) { |
138
|
0 |
0 |
if (rule->containing_dir) |
142
|
0 |
0 |
if (git_str_oom(&buf)) |
151
|
0 |
0 |
if (!(rule->flags & GIT_ATTR_FNMATCH_FULLPATH)) |
155
|
0 |
0 |
if ((wildmatch(git_str_cstr(&buf), path, effective_flags)) == WM_MATCH) { |
180
|
0 |
369 |
if (git_repository__configmap_lookup(&ignore_case, repo, GIT_CONFIGMAP_IGNORECASE) < 0) |
185
|
176 |
191 |
git_fs_path_root(attrs->entry->path) < 0 && |
189
|
0 |
369 |
if (git_mutex_lock(&attrs->lock) < 0) { |
194
|
441 |
0 |
while (!error && *scan) { |
|
72 |
369 |
while (!error && *scan) { |
197
|
58 |
14 |
if (!match && !(match = git__calloc(1, sizeof(*match)))) { |
|
0 |
58 |
if (!match && !(match = git__calloc(1, sizeof(*match)))) { |
205
|
44 |
28 |
if (!(error = git_attr_fnmatch__parse( |
210
|
0 |
44 |
if (ignore_case) |
221
|
0 |
44 |
if (match->flags & GIT_ATTR_FNMATCH_NEGATIVE |
222
|
0 |
0 |
&& !(match->flags & GIT_ATTR_FNMATCH_HASWILD)) |
225
|
44 |
0 |
if (!error && valid_rule) |
|
44 |
0 |
if (!error && valid_rule) |
229
|
44 |
28 |
if (error != 0 || !valid_rule) { |
|
0 |
44 |
if (error != 0 || !valid_rule) { |
232
|
28 |
0 |
if (error == GIT_ENOTFOUND) |
257
|
0 |
540 |
if (error < 0) |
260
|
540 |
0 |
if (file != NULL) { |
261
|
0 |
540 |
if ((error = git_vector_insert(which_list, file)) < 0) |
280
|
0 |
184 |
if ((error = git_attr_cache__init(repo)) < 0) |
286
|
184 |
0 |
if (!error && !(*out)->rules.length) |
|
14 |
170 |
if (!error && !(*out)->rules.length) |
301
|
0 |
182 |
GIT_ASSERT_ARG(repo); |
302
|
0 |
182 |
GIT_ASSERT_ARG(ignores); |
303
|
0 |
182 |
GIT_ASSERT_ARG(path); |
309
|
0 |
182 |
if ((error = git_repository__configmap_lookup( |
313
|
0 |
182 |
if ((error = git_attr_cache__init(repo)) < 0) |
317
|
182 |
0 |
if (workdir && git_fs_path_root(path) < 0) { |
|
182 |
0 |
if (workdir && git_fs_path_root(path) < 0) { |
320
|
182 |
0 |
if ((error = git_fs_path_dirname_r(&local, path)) < 0 || |
|
182 |
0 |
if ((error = git_fs_path_dirname_r(&local, path)) < 0 || |
321
|
182 |
0 |
(error = git_fs_path_resolve_relative(&local, 0)) < 0 || |
322
|
182 |
0 |
(error = git_fs_path_to_dir(&local)) < 0 || |
330
|
0 |
0 |
if (!(error = git_str_joinpath(&ignores->dir, path, ""))) |
334
|
0 |
182 |
if (error < 0) |
337
|
182 |
0 |
if (workdir && !git__prefixcmp(ignores->dir.ptr, workdir)) |
|
182 |
0 |
if (workdir && !git__prefixcmp(ignores->dir.ptr, workdir)) |
341
|
0 |
182 |
if ((error = get_internal_ignores(&ignores->ign_internal, repo)) < 0) |
345
|
182 |
0 |
if (workdir != NULL) { |
348
|
0 |
182 |
if (error < 0) |
353
|
182 |
0 |
if ((error = git_repository__item_path(&infopath, repo, GIT_REPOSITORY_ITEM_INFO)) < 0 || |
|
0 |
182 |
if ((error = git_repository__item_path(&infopath, repo, GIT_REPOSITORY_ITEM_INFO)) < 0 || |
355
|
0 |
0 |
if (error != GIT_ENOTFOUND) |
361
|
0 |
182 |
if (git_repository_attr_cache(repo)->cfg_excl_file != NULL) |
368
|
0 |
182 |
if (error < 0) |
376
|
0 |
176 |
if (git_str_joinpath(&ign->dir, ign->dir.ptr, dir) < 0) |
387
|
355 |
0 |
if (ign->ign_path.length > 0) { |
400
|
176 |
179 |
if ((end = strrchr(start, '/')) != NULL) { |
405
|
176 |
0 |
if (pathlen == dirlen && !memcmp(relpath, start, dirlen)) { |
|
176 |
0 |
if (pathlen == dirlen && !memcmp(relpath, start, dirlen)) { |
412
|
176 |
179 |
if (--ign->depth > 0) { |
427
|
182 |
213 |
git_vector_foreach(&ignores->ign_path, i, file) { |
433
|
182 |
213 |
git_vector_foreach(&ignores->ign_global, i, file) { |
448
|
2330 |
2666 |
git_vector_rforeach(&file->rules, j, match) { |
449
|
0 |
2330 |
if (match->flags & GIT_ATTR_FNMATCH_DIRECTORY && |
|
0 |
0 |
if (match->flags & GIT_ATTR_FNMATCH_DIRECTORY && |
452
|
11 |
2319 |
if (git_attr_fnmatch__match(match, path)) { |
471
|
0 |
760 |
if (git_attr_path__init( |
476
|
10 |
750 |
if (ignore_lookup_in_rules(out, ignores->ign_internal, &path)) |
483
|
1160 |
750 |
git_vector_rforeach(&ignores->ign_path, i, file) { |
484
|
0 |
1160 |
if (ignore_lookup_in_rules(out, file, &path)) |
489
|
750 |
750 |
git_vector_foreach(&ignores->ign_global, i, file) { |
490
|
0 |
750 |
if (ignore_lookup_in_rules(out, file, &path)) |
504
|
0 |
2 |
if ((error = get_internal_ignores(&ign_internal, repo)) < 0) |
518
|
0 |
0 |
if ((error = get_internal_ignores(&ign_internal, repo)) < 0) |
521
|
0 |
0 |
if (!(error = git_attr_file__clear_rules(ign_internal, true))) |
542
|
0 |
3 |
GIT_ASSERT_ARG(repo); |
543
|
0 |
3 |
GIT_ASSERT_ARG(ignored); |
544
|
0 |
3 |
GIT_ASSERT_ARG(pathname); |
551
|
0 |
3 |
if (!git__suffixcmp(pathname, "/")) |
553
|
0 |
3 |
else if (git_repository_is_bare(repo)) |
556
|
3 |
0 |
if ((error = git_attr_path__init(&path, pathname, workdir, dir_flag)) < 0 || |
|
3 |
0 |
if ((error = git_attr_path__init(&path, pathname, workdir, dir_flag)) < 0 || |
562
|
1 |
2 |
if (ignore_lookup_in_rules(ignored, ignores.ign_internal, &path)) |
566
|
2 |
2 |
git_vector_foreach(&ignores.ign_path, i, file) { |
567
|
0 |
2 |
if (ignore_lookup_in_rules(ignored, file, &path)) |
572
|
2 |
2 |
git_vector_foreach(&ignores.ign_global, i, file) { |
573
|
0 |
2 |
if (ignore_lookup_in_rules(ignored, file, &path)) |
578
|
2 |
0 |
if (path.basename == path.path) |
581
|
0 |
0 |
while (path.basename > path.path && *path.basename != '/') |
|
0 |
0 |
while (path.basename > path.path && *path.basename != '/') |
583
|
0 |
0 |
if (path.basename > path.path) |
587
|
0 |
0 |
if ((error = git_ignore__pop_dir(&ignores)) < 0) |
612
|
0 |
0 |
if ((error = git_repository__ensure_not_bare( |
613
|
0 |
0 |
repo, "validate pathspec")) < 0 || |
617
|
0 |
0 |
git_vector_foreach(vspec, i, match) { |
619
|
0 |
0 |
if ((match->flags & GIT_ATTR_FNMATCH_HASWILD) != 0 && |
|
0 |
0 |
if ((match->flags & GIT_ATTR_FNMATCH_HASWILD) != 0 && |
626
|
0 |
0 |
if (git_index_get_bypath(idx, filename, 0) != NULL) |
629
|
0 |
0 |
if ((error = git_repository_workdir_path(&path, repo, filename)) < 0) |
633
|
0 |
0 |
if (!git_fs_path_isfile(path.ptr)) |
637
|
0 |
0 |
if ((error = git_ignore_path_is_ignored(&ignored, repo, filename)) < 0) |
640
|
0 |
0 |
if (ignored) { |