reflog.h 778 Bytes
Newer Older
Vicent Marti committed
1
/*
Edward Thomson committed
2
 * Copyright (C) the libgit2 contributors. All rights reserved.
Vicent Marti committed
3 4 5 6
 *
 * This file is part of libgit2, distributed under the GNU GPL v2 with
 * a Linking Exception. For full terms see the included COPYING file.
 */
7 8 9 10
#ifndef INCLUDE_reflog_h__
#define INCLUDE_reflog_h__

#include "common.h"
11

12 13 14 15
#include "git2/reflog.h"
#include "vector.h"

#define GIT_REFLOG_DIR "logs/"
16
#define GIT_REFLOG_DIR_MODE 0777
17
#define GIT_REFLOG_FILE_MODE 0666
18 19 20 21

#define GIT_REFLOG_SIZE_MIN (2*GIT_OID_HEXSZ+2+17)

struct git_reflog_entry {
22 23
	git_oid oid_old;
	git_oid oid_cur;
24 25 26 27 28 29 30

	git_signature *committer;

	char *msg;
};

struct git_reflog {
31
	git_refdb *db;
32 33 34 35
	char *ref_name;
	git_vector entries;
};

36 37 38 39 40
GIT_INLINE(size_t) reflog_inverse_index(size_t idx, size_t total)
{
	return (total - 1) - idx;
}

41
#endif