Commit | Line | Data |
---|---|---|
95fc7512 DB |
1 | #ifndef REFS_H |
2 | #define REFS_H | |
3 | ||
4bd18c43 SP |
4 | struct ref_lock { |
5 | char *ref_file; | |
6 | char *lock_file; | |
6de08ae6 | 7 | char *log_file; |
4bd18c43 SP |
8 | unsigned char old_sha1[20]; |
9 | int lock_fd; | |
10 | }; | |
11 | ||
8a65ff76 LT |
12 | /* |
13 | * Calls the specified function for each ref file until it returns nonzero, | |
14 | * and returns the value | |
15 | */ | |
723c31fe | 16 | extern int head_ref(int (*fn)(const char *path, const unsigned char *sha1)); |
944d8589 | 17 | extern int for_each_ref(int (*fn)(const char *path, const unsigned char *sha1)); |
a62be77f SE |
18 | extern int for_each_tag_ref(int (*fn)(const char *path, const unsigned char *sha1)); |
19 | extern int for_each_branch_ref(int (*fn)(const char *path, const unsigned char *sha1)); | |
20 | extern int for_each_remote_ref(int (*fn)(const char *path, const unsigned char *sha1)); | |
8a65ff76 | 21 | |
95fc7512 DB |
22 | /** Reads the refs file specified into sha1 **/ |
23 | extern int get_ref_sha1(const char *ref, unsigned char *sha1); | |
24 | ||
4bd18c43 SP |
25 | /** Locks a "refs/" ref returning the lock on success and NULL on failure. **/ |
26 | extern struct ref_lock* lock_ref_sha1(const char *ref, const unsigned char *old_sha1, int mustexist); | |
27 | ||
28 | /** Locks any ref (for 'HEAD' type refs). */ | |
29 | extern struct ref_lock* lock_any_ref_for_update(const char *ref, const unsigned char *old_sha1, int mustexist); | |
95fc7512 | 30 | |
4bd18c43 SP |
31 | /** Release any lock taken but not written. **/ |
32 | extern void unlock_ref (struct ref_lock *lock); | |
95fc7512 | 33 | |
4bd18c43 SP |
34 | /** Writes sha1 into the ref specified by the lock. **/ |
35 | extern int write_ref_sha1(struct ref_lock *lock, const unsigned char *sha1, const char *msg); | |
95fc7512 | 36 | |
d556fae2 SP |
37 | /** Reads log for the value of ref during at_time. **/ |
38 | extern int read_ref_at(const char *ref, unsigned long at_time, unsigned char *sha1); | |
39 | ||
95fc7512 DB |
40 | /** Returns 0 if target has the right format for a ref. **/ |
41 | extern int check_ref_format(const char *target); | |
42 | ||
43 | #endif /* REFS_H */ |