]>
git.proxmox.com Git - libgit2.git/blob - src/commit_list.h
2 * Copyright (C) the libgit2 contributors. All rights reserved.
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.
7 #ifndef INCLUDE_commit_list_h__
8 #define INCLUDE_commit_list_h__
14 #define PARENT1 (1 << 0)
15 #define PARENT2 (1 << 1)
16 #define RESULT (1 << 2)
17 #define STALE (1 << 3)
18 #define ALL_FLAGS (PARENT1 | PARENT2 | STALE | RESULT)
20 #define PARENTS_PER_COMMIT 2
21 #define COMMIT_ALLOC \
22 (sizeof(git_commit_list_node) + PARENTS_PER_COMMIT * sizeof(git_commit_list_node *))
26 typedef struct git_commit_list_node
{
40 struct git_commit_list_node
**parents
;
41 } git_commit_list_node
;
43 typedef struct git_commit_list
{
44 git_commit_list_node
*item
;
45 struct git_commit_list
*next
;
48 git_commit_list_node
*git_commit_list_alloc_node(git_revwalk
*walk
);
49 int git_commit_list_generation_cmp(const void *a
, const void *b
);
50 int git_commit_list_time_cmp(const void *a
, const void *b
);
51 void git_commit_list_free(git_commit_list
**list_p
);
52 git_commit_list
*git_commit_list_insert(git_commit_list_node
*item
, git_commit_list
**list_p
);
53 git_commit_list
*git_commit_list_insert_by_date(git_commit_list_node
*item
, git_commit_list
**list_p
);
54 int git_commit_list_parse(git_revwalk
*walk
, git_commit_list_node
*commit
);
55 git_commit_list_node
*git_commit_list_pop(git_commit_list
**stack
);