invalidate_ref_cache(): expose this function in the refs API
Make invalidate_ref_cache() an official part of the refs API. It is currently a fact of life that code outside of refs.c mucks about with references. This change gives such code a way of informing the refs module that it should no longer trust its cache. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael Haggerty committed
Oct 17, 2011 at 04:38 UTC
8be8bde75f90661ecd118ac890290889e184063d
2 files changed
+9
-1
refs.c
+1
-1
@@ -202,7 +202,7 @@ static struct ref_cache *get_ref_cache(const char *submodule)
202
return refs;
203
}
204
205
-static void invalidate_ref_cache(const char *submodule)
205
+void invalidate_ref_cache(const char *submodule)
206
{
207
clear_ref_cache(get_ref_cache(submodule));
208
}
refs.h
+8
@@ -80,6 +80,14 @@ extern void unlock_ref(struct ref_lock *lock);
80
/** Writes sha1 into the ref specified by the lock. **/
81
extern int write_ref_sha1(struct ref_lock *lock, const unsigned char *sha1, const char *msg);
82
83
+/*
84
+ * Invalidate the reference cache for the specified submodule. Use
85
+ * submodule=NULL to invalidate the cache for the main module. This
86
+ * function must be called if references are changed via a mechanism
87
+ * other than the refs API.
88
+ */
89
+extern void invalidate_ref_cache(const char *submodule);
90
+
91
/** Setup reflog before using. **/
92
int log_ref_setup(const char *ref_name, char *logfile, int bufsize);
93