File Coverage

deps/libgit2/src/libgit2/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             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             git_str write_cache;
36             };
37              
38 13           GIT_INLINE(bool) git_tree_entry__is_tree(const struct git_tree_entry *e)
39             {
40 13 100         return (S_ISDIR(e->attr) && !S_ISGITLINK(e->attr));
    50          
41             }
42              
43             void git_tree__free(void *tree);
44             int git_tree__parse(void *tree, git_odb_object *obj);
45             int git_tree__parse_raw(void *_tree, const char *data, size_t size);
46              
47             /**
48             * Write a tree to the given repository
49             */
50             int git_tree__write_index(
51             git_oid *oid, git_index *index, git_repository *repo);
52              
53             /**
54             * Obsolete mode kept for compatibility reasons
55             */
56             #define GIT_FILEMODE_BLOB_GROUP_WRITABLE 0100664
57              
58             #endif