File Coverage

deps/libgit2/src/tree.h
Criterion Covered Total %
statement 2 2 100.0
branch 3 4 75.0
condition n/a
subroutine n/a
pod n/a
total 5 6 83.3


line stmt bran cond sub pod time code
1             /*
2             * Copyright (C) the libgit2 contributors. All rights reserved.
3             *
4             * This file is part of libgit2, distributed under the GNU GPL v2 with
5             * a Linking Exception. For full terms see the included COPYING file.
6             */
7             #ifndef INCLUDE_tree_h__
8             #define INCLUDE_tree_h__
9              
10             #include "common.h"
11              
12             #include "git2/tree.h"
13             #include "repository.h"
14             #include "odb.h"
15             #include "vector.h"
16             #include "strmap.h"
17             #include "pool.h"
18              
19             struct git_tree_entry {
20             uint16_t attr;
21             uint16_t filename_len;
22             const git_oid *oid;
23             const char *filename;
24             };
25              
26             struct git_tree {
27             git_object object;
28             git_odb_object *odb_obj;
29             git_array_t(git_tree_entry) entries;
30             };
31              
32             struct git_treebuilder {
33             git_repository *repo;
34             git_strmap *map;
35             };
36              
37 13           GIT_INLINE(bool) git_tree_entry__is_tree(const struct git_tree_entry *e)
38             {
39 13 100         return (S_ISDIR(e->attr) && !S_ISGITLINK(e->attr));
    50          
40             }
41              
42             void git_tree__free(void *tree);
43             int git_tree__parse(void *tree, git_odb_object *obj);
44             int git_tree__parse_raw(void *_tree, const char *data, size_t size);
45              
46             /**
47             * Write a tree to the given repository
48             */
49             int git_tree__write_index(
50             git_oid *oid, git_index *index, git_repository *repo);
51              
52             /**
53             * Obsolete mode kept for compatibility reasons
54             */
55             #define GIT_FILEMODE_BLOB_GROUP_WRITABLE 0100664
56              
57             #endif