line |
true |
false |
branch |
24
|
260 |
2196 |
if (attr == NULL || attr == git_attr__unset) |
|
0 |
260 |
if (attr == NULL || attr == git_attr__unset) |
27
|
260 |
0 |
if (attr == git_attr__true) |
30
|
0 |
0 |
if (attr == git_attr__false) |
61
|
0 |
4 |
GIT_ASSERT_ARG(value); |
62
|
0 |
4 |
GIT_ASSERT_ARG(repo); |
63
|
0 |
4 |
GIT_ASSERT_ARG(name); |
64
|
0 |
4 |
GIT_ERROR_CHECK_VERSION(opts, GIT_ATTR_OPTIONS_VERSION, "git_attr_options"); |
68
|
0 |
4 |
if (git_repository_is_bare(repo)) |
71
|
0 |
4 |
if (git_attr_path__init(&path, pathname, git_repository_workdir(repo), dir_flag) < 0) |
74
|
0 |
4 |
if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0) |
81
|
8 |
4 |
git_vector_foreach(&files, i, file) { |
83
|
0 |
0 |
git_attr_file__foreach_matching_rule(file, &path, j, rule) { |
|
0 |
8 |
git_attr_file__foreach_matching_rule(file, &path, j, rule) { |
86
|
0 |
0 |
if (!git_vector_bsearch(&pos, &rule->assigns, &attr)) { |
140
|
0 |
627 |
if (!num_attr) |
143
|
0 |
627 |
GIT_ASSERT_ARG(values); |
144
|
0 |
627 |
GIT_ASSERT_ARG(repo); |
145
|
0 |
627 |
GIT_ASSERT_ARG(pathname); |
146
|
0 |
627 |
GIT_ASSERT_ARG(names); |
147
|
0 |
627 |
GIT_ERROR_CHECK_VERSION(opts, GIT_ATTR_OPTIONS_VERSION, "git_attr_options"); |
149
|
0 |
627 |
if (git_repository_is_bare(repo)) |
152
|
0 |
627 |
if (git_attr_path__init(&path, pathname, git_repository_workdir(repo), dir_flag) < 0) |
155
|
0 |
627 |
if ((error = collect_attr_files(repo, attr_session, opts, pathname, &files)) < 0) |
159
|
0 |
627 |
GIT_ERROR_CHECK_ALLOC(info); |
161
|
1378 |
627 |
git_vector_foreach(&files, i, file) { |
163
|
0 |
0 |
git_attr_file__foreach_matching_rule(file, &path, j, rule) { |
|
0 |
1378 |
git_attr_file__foreach_matching_rule(file, &path, j, rule) { |
165
|
0 |
0 |
for (k = 0; k < num_attr; k++) { |
168
|
0 |
0 |
if (info[k].found != NULL) /* already found assignment */ |
171
|
0 |
0 |
if (!info[k].name.name) { |
176
|
0 |
0 |
if (!git_vector_bsearch(&pos, &rule->assigns, &info[k].name)) { |
181
|
0 |
0 |
if (++num_found == num_attr) |
188
|
1147 |
627 |
for (k = 0; k < num_attr; k++) { |
189
|
1147 |
0 |
if (!info[k].found) |
260
|
0 |
0 |
GIT_ASSERT_ARG(repo); |
261
|
0 |
0 |
GIT_ASSERT_ARG(callback); |
262
|
0 |
0 |
GIT_ERROR_CHECK_VERSION(opts, GIT_ATTR_OPTIONS_VERSION, "git_attr_options"); |
264
|
0 |
0 |
if (git_repository_is_bare(repo)) |
267
|
0 |
0 |
if (git_attr_path__init(&path, pathname, git_repository_workdir(repo), dir_flag) < 0) |
270
|
0 |
0 |
if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0 || |
|
0 |
0 |
if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0 || |
274
|
0 |
0 |
git_vector_foreach(&files, i, file) { |
276
|
0 |
0 |
git_attr_file__foreach_matching_rule(file, &path, j, rule) { |
|
0 |
0 |
git_attr_file__foreach_matching_rule(file, &path, j, rule) { |
278
|
0 |
0 |
git_vector_foreach(&rule->assigns, k, assign) { |
280
|
0 |
0 |
if (git_strmap_exists(seen, assign->name)) |
283
|
0 |
0 |
if ((error = git_strmap_set(seen, assign->name, assign)) < 0) |
287
|
0 |
0 |
if (error) { |
311
|
0 |
1551 |
if (!source) |
317
|
1551 |
0 |
if (!error) |
331
|
517 |
1034 |
if (!filename) |
346
|
926 |
222 |
if (!attr_session) { |
349
|
926 |
0 |
if (error == GIT_ENOTFOUND) |
355
|
54 |
168 |
if (!attr_session->init_sysdir) { |
358
|
54 |
0 |
if (error == GIT_ENOTFOUND) |
360
|
0 |
0 |
else if (error) |
366
|
222 |
0 |
if (attr_session->sysdir.size == 0) |
391
|
168 |
463 |
if (attr_session && attr_session->init_setup) |
|
114 |
54 |
if (attr_session && attr_session->init_setup) |
394
|
0 |
517 |
if ((error = git_attr_cache__init(repo)) < 0) |
402
|
0 |
517 |
if ((error = system_attr_file(&system, attr_session)) < 0 || |
|
0 |
0 |
if ((error = system_attr_file(&system, attr_session)) < 0 || |
404
|
0 |
517 |
if (error != GIT_ENOTFOUND) |
410
|
0 |
517 |
if ((error = preload_attr_file(repo, attr_session, NULL, |
414
|
517 |
0 |
if ((error = git_repository__item_path(&info, repo, GIT_REPOSITORY_ITEM_INFO)) < 0 || |
|
0 |
517 |
if ((error = git_repository__item_path(&info, repo, GIT_REPOSITORY_ITEM_INFO)) < 0 || |
416
|
0 |
0 |
if (error != GIT_ENOTFOUND) |
422
|
517 |
0 |
if ((workdir = git_repository_workdir(repo)) != NULL && |
|
0 |
517 |
if ((workdir = git_repository_workdir(repo)) != NULL && |
426
|
517 |
0 |
if ((error = git_repository_index__weakptr(&idx, repo)) < 0 || |
|
517 |
0 |
if ((error = git_repository_index__weakptr(&idx, repo)) < 0 || |
430
|
493 |
24 |
if ((opts && (opts->flags & GIT_ATTR_CHECK_INCLUDE_HEAD) != 0) && |
|
0 |
493 |
if ((opts && (opts->flags & GIT_ATTR_CHECK_INCLUDE_HEAD) != 0) && |
|
0 |
0 |
if ((opts && (opts->flags & GIT_ATTR_CHECK_INCLUDE_HEAD) != 0) && |
434
|
493 |
24 |
if ((opts && (opts->flags & GIT_ATTR_CHECK_INCLUDE_COMMIT) != 0)) { |
|
0 |
493 |
if ((opts && (opts->flags & GIT_ATTR_CHECK_INCLUDE_COMMIT) != 0)) { |
436
|
0 |
0 |
if (opts->commit_id) |
442
|
0 |
0 |
if ((error = preload_attr_source(repo, attr_session, &commit_source)) < 0) |
446
|
54 |
463 |
if (attr_session) |
465
|
0 |
16 |
GIT_ASSERT_ARG(repo); |
466
|
0 |
16 |
GIT_ASSERT_ARG(name); |
468
|
0 |
16 |
if ((error = git_attr_cache__init(repo)) < 0) |
472
|
0 |
16 |
GIT_ERROR_CHECK_ALLOC(macro); |
477
|
0 |
16 |
GIT_ERROR_CHECK_ALLOC(macro->match.pattern); |
484
|
16 |
0 |
if (!error) |
487
|
0 |
16 |
if (error < 0) |
512
|
755 |
0 |
if (has_wd) |
514
|
755 |
0 |
if (has_index) |
518
|
0 |
0 |
if (has_index) |
520
|
0 |
0 |
if (has_wd) |
524
|
0 |
0 |
if (has_index) |
529
|
0 |
755 |
if ((flags & GIT_ATTR_CHECK_INCLUDE_HEAD) != 0) |
532
|
0 |
755 |
if ((flags & GIT_ATTR_CHECK_INCLUDE_COMMIT) != 0) |
553
|
0 |
2141 |
if (error < 0) |
556
|
1386 |
755 |
if (file != NULL) { |
557
|
0 |
1386 |
if ((error = git_vector_insert(list, file)) < 0) |
582
|
621 |
134 |
n_src = attr_decide_sources(info->opts ? info->opts->flags : 0, |
587
|
755 |
0 |
allow_macros = info->workdir ? !strcmp(info->workdir, path) : false; |
|
631 |
124 |
allow_macros = info->workdir ? !strcmp(info->workdir, path) : false; |
589
|
2265 |
0 |
for (i = 0; !error && i < n_src; ++i) { |
|
1510 |
755 |
for (i = 0; !error && i < n_src; ++i) { |
592
|
0 |
1510 |
if (src[i] == GIT_ATTR_FILE_SOURCE_COMMIT && info->opts) { |
|
0 |
0 |
if (src[i] == GIT_ATTR_FILE_SOURCE_COMMIT && info->opts) { |
594
|
0 |
0 |
if (info->opts->commit_id) |
613
|
1386 |
631 |
git_vector_foreach(files, i, file) { |
632
|
0 |
631 |
GIT_ASSERT(!git_fs_path_is_absolute(path)); |
634
|
0 |
631 |
if ((error = attr_setup(repo, attr_session, opts)) < 0) |
638
|
631 |
0 |
if (workdir != NULL) { |
639
|
631 |
0 |
if (!(error = git_repository_workdir_path(&dir, repo, path))) |
646
|
0 |
631 |
if (error < 0) |
656
|
631 |
0 |
if ((error = git_repository__item_path(&attrfile, repo, GIT_REPOSITORY_ITEM_INFO)) < 0 || |
|
0 |
631 |
if ((error = git_repository__item_path(&attrfile, repo, GIT_REPOSITORY_ITEM_INFO)) < 0 || |
658
|
0 |
0 |
if (error != GIT_ENOTFOUND) |
666
|
0 |
631 |
if (git_repository_index__weakptr(&info.index, repo) < 0) |
670
|
0 |
631 |
if (!strcmp(dir.ptr, ".")) |
675
|
0 |
631 |
if (error < 0) |
678
|
0 |
631 |
if (git_repository_attr_cache(repo)->cfg_attr_file != NULL) { |
680
|
0 |
0 |
if (error < 0) |
684
|
531 |
100 |
if (!opts || (opts->flags & GIT_ATTR_CHECK_NO_SYSTEM) == 0) { |
|
531 |
0 |
if (!opts || (opts->flags & GIT_ATTR_CHECK_NO_SYSTEM) == 0) { |
687
|
0 |
631 |
if (!error) |
689
|
631 |
0 |
else if (error == GIT_ENOTFOUND) |
694
|
0 |
631 |
if (error < 0) |