diff options
author | Ben Straub <bs@github.com> | 2012-11-27 07:47:47 +0400 |
---|---|---|
committer | Ben Straub <bs@github.com> | 2012-11-28 01:18:29 +0400 |
commit | 4ff192d3f224c780c741e62146c3350e54cba759 (patch) | |
tree | 2bd321725806845dc45d6c00ef5c96f0c6715cc6 /src/commit_list.h | |
parent | 839c5f574f40726f6fbdb82c947635bd14bdc9aa (diff) |
Move merge functions to merge.c
In so doing, promote commit_list to git_commit_list,
with its own internal API header.
Diffstat (limited to 'src/commit_list.h')
-rw-r--r-- | src/commit_list.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/commit_list.h b/src/commit_list.h new file mode 100644 index 000000000..ba809c901 --- /dev/null +++ b/src/commit_list.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2009-2012 the libgit2 contributors + * + * This file is part of libgit2, distributed under the GNU GPL v2 with + * a Linking Exception. For full terms see the included COPYING file. + */ +#ifndef INCLUDE_commit_list_h__ +#define INCLUDE_commit_list_h__ + +#include "git2/oid.h" + +#define PARENT1 (1 << 0) +#define PARENT2 (1 << 1) +#define RESULT (1 << 2) +#define STALE (1 << 3) + +#define PARENTS_PER_COMMIT 2 +#define COMMIT_ALLOC \ + (sizeof(git_commit_list_node) + PARENTS_PER_COMMIT * sizeof(git_commit_list_node *)) + +typedef struct git_commit_list_node { + git_oid oid; + uint32_t time; + unsigned int seen:1, + uninteresting:1, + topo_delay:1, + parsed:1, + flags : 4; + + unsigned short in_degree; + unsigned short out_degree; + + struct git_commit_list_node **parents; +} git_commit_list_node; + +typedef struct git_commit_list { + git_commit_list_node *item; + struct git_commit_list *next; +} git_commit_list; + +git_commit_list_node *git_commit_list_alloc_node(git_revwalk *walk); +int git_commit_list_time_cmp(void *a, void *b); +void git_commit_list_free(git_commit_list **list_p); +git_commit_list *git_commit_list_insert(git_commit_list_node *item, git_commit_list **list_p); +git_commit_list *git_commit_list_insert_by_date(git_commit_list_node *item, git_commit_list **list_p); +int git_commit_list_parse(git_revwalk *walk, git_commit_list_node *commit); +git_commit_list_node *git_commit_list_pop(git_commit_list **stack); + +#endif |