|
Packit Service |
20376f |
/*
|
|
Packit Service |
20376f |
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
Packit Service |
20376f |
*
|
|
Packit Service |
20376f |
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
Packit Service |
20376f |
* a Linking Exception. For full terms see the included COPYING file.
|
|
Packit Service |
20376f |
*/
|
|
Packit Service |
20376f |
#ifndef INCLUDE_commit_list_h__
|
|
Packit Service |
20376f |
#define INCLUDE_commit_list_h__
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
#include "git2/oid.h"
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
#define PARENT1 (1 << 0)
|
|
Packit Service |
20376f |
#define PARENT2 (1 << 1)
|
|
Packit Service |
20376f |
#define RESULT (1 << 2)
|
|
Packit Service |
20376f |
#define STALE (1 << 3)
|
|
Packit Service |
20376f |
#define ALL_FLAGS (PARENT1 | PARENT2 | STALE | RESULT)
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
#define PARENTS_PER_COMMIT 2
|
|
Packit Service |
20376f |
#define COMMIT_ALLOC \
|
|
Packit Service |
20376f |
(sizeof(git_commit_list_node) + PARENTS_PER_COMMIT * sizeof(git_commit_list_node *))
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
#define FLAG_BITS 4
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
typedef struct git_commit_list_node {
|
|
Packit Service |
20376f |
git_oid oid;
|
|
Packit Service |
20376f |
int64_t time;
|
|
Packit Service |
20376f |
unsigned int seen:1,
|
|
Packit Service |
20376f |
uninteresting:1,
|
|
Packit Service |
20376f |
topo_delay:1,
|
|
Packit Service |
20376f |
parsed:1,
|
|
Packit Service |
20376f |
added:1,
|
|
Packit Service |
20376f |
flags : FLAG_BITS;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
unsigned short in_degree;
|
|
Packit Service |
20376f |
unsigned short out_degree;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
struct git_commit_list_node **parents;
|
|
Packit Service |
20376f |
} git_commit_list_node;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
typedef struct git_commit_list {
|
|
Packit Service |
20376f |
git_commit_list_node *item;
|
|
Packit Service |
20376f |
struct git_commit_list *next;
|
|
Packit Service |
20376f |
} git_commit_list;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
git_commit_list_node *git_commit_list_alloc_node(git_revwalk *walk);
|
|
Packit Service |
20376f |
int git_commit_list_time_cmp(const void *a, const void *b);
|
|
Packit Service |
20376f |
void git_commit_list_free(git_commit_list **list_p);
|
|
Packit Service |
20376f |
git_commit_list *git_commit_list_insert(git_commit_list_node *item, git_commit_list **list_p);
|
|
Packit Service |
20376f |
git_commit_list *git_commit_list_insert_by_date(git_commit_list_node *item, git_commit_list **list_p);
|
|
Packit Service |
20376f |
int git_commit_list_parse(git_revwalk *walk, git_commit_list_node *commit);
|
|
Packit Service |
20376f |
git_commit_list_node *git_commit_list_pop(git_commit_list **stack);
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
#endif
|