summaryrefslogtreecommitdiff
path: root/src/graft.h
blob: e2afb9711314c3be2efbba1dd9c62bc14af1e609 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
 * Copyright (C) the libgit2 contributors. All rights reserved.
 *
 * 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_graft_h__
#define INCLUDE_graft_h__

#include "common.h"
#include "oidarray.h"
#include "oidmap.h"

/** graft commit */
typedef struct {
	git_oid oid;
	git_array_oid_t parents;
} git_commit_graft;

/* A special type of git_oidmap with git_commit_grafts as values */
typedef git_oidmap git_graftmap;

int git__graft_register(git_graftmap *grafts, const git_oid *oid, git_array_oid_t parents);
int git__graft_unregister(git_graftmap *grafts, const git_oid *oid);
void git__graft_clear(git_graftmap *grafts);

int git__graft_for_oid(git_commit_graft **out, git_graftmap *grafts, const git_oid *oid);

#endif