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