refs.h 1.01 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 20 21
#define GIT_HEAD_FILE "HEAD"
#define GIT_REFS_HEADS_MASTER_FILE GIT_REFS_HEADS_DIR "master"

22
struct git_reference {
23
	git_repository *owner;
24
	char *name;
25
	unsigned int type;
26 27
};

28
typedef struct {
Vicent Marti committed
29 30
	git_hashtable *packfile;
	git_hashtable *loose_cache;
31 32
} git_refcache;

33

34 35
void git_repository__refcache_free(git_refcache *refs);
int git_repository__refcache_init(git_refcache *refs);
36 37 38

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

40
#endif