refs.h 1.08 KB
Newer Older
1 2 3 4 5
#ifndef INCLUDE_refs_h__
#define INCLUDE_refs_h__

#include "common.h"
#include "git2/oid.h"
6
#include "git2/refs.h"
7 8 9 10 11
#include "hashtable.h"

#define GIT_REFS_DIR "refs/"
#define GIT_REFS_HEADS_DIR GIT_REFS_DIR "heads/"
#define GIT_REFS_TAGS_DIR GIT_REFS_DIR "tags/"
12
#define GIT_REFS_REMOTES_DIR GIT_REFS_DIR "remotes/"
13

14
#define GIT_SYMREF "ref: "
15
#define GIT_PACKEDREFS_FILE "packed-refs"
16
#define GIT_PACKEDREFS_HEADER "# pack-refs with: peeled "
17 18
#define MAX_GITDIR_TREE_STRUCTURE_PATH_LENGTH 100

19
#define GIT_HEAD_FILE "HEAD"
20
#define GIT_MERGE_HEAD_FILE "MERGE_HEAD"
21 22
#define GIT_REFS_HEADS_MASTER_FILE GIT_REFS_HEADS_DIR "master"

23
struct git_reference {
24
	git_repository *owner;
25
	char *name;
26
	unsigned int type;
27
	time_t mtime;
28 29
};

30
typedef struct {
Vicent Marti committed
31 32
	git_hashtable *packfile;
	git_hashtable *loose_cache;
33
	time_t packfile_time;
34 35
} git_refcache;

36

37 38
void git_repository__refcache_free(git_refcache *refs);
int git_repository__refcache_init(git_refcache *refs);
39 40 41

int git_reference__normalize_name(char *buffer_out, const char *name);
int git_reference__normalize_name_oid(char *buffer_out, const char *name);
42

43
#endif