From 95fc75129acf14d980bdd56b9b2ee74190f81d91 Mon Sep 17 00:00:00 2001 From: Daniel Barkalow Date: Mon, 6 Jun 2005 16:31:29 -0400 Subject: [PATCH] Operations on refs This patch adds code to read a hash out of a specified file under {GIT_DIR}/refs/, and to write such files atomically and optionally with an compare and lock. Signed-off-by: Daniel Barkalow Signed-off-by: Linus Torvalds --- refs.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 refs.h (limited to 'refs.h') diff --git a/refs.h b/refs.h new file mode 100644 index 0000000000..60cf48086f --- /dev/null +++ b/refs.h @@ -0,0 +1,21 @@ +#ifndef REFS_H +#define REFS_H + +/** Reads the refs file specified into sha1 **/ +extern int get_ref_sha1(const char *ref, unsigned char *sha1); + +/** Locks ref and returns the fd to give to write_ref_sha1() if the ref + * has the given value currently; otherwise, returns -1. + **/ +extern int lock_ref_sha1(const char *ref, const unsigned char *old_sha1); + +/** Writes sha1 into the refs file specified, locked with the given fd. **/ +extern int write_ref_sha1(const char *ref, int fd, const unsigned char *sha1); + +/** Writes sha1 into the refs file specified. **/ +extern int write_ref_sha1_unlocked(const char *ref, const unsigned char *sha1); + +/** Returns 0 if target has the right format for a ref. **/ +extern int check_ref_format(const char *target); + +#endif /* REFS_H */ -- cgit v1.2.3