From afc711b8e1ee89626f0dddf0ef01fb73168d47ca Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Tue, 18 Feb 2014 12:24:55 +0100 Subject: rename read_replace_refs to check_replace_refs The semantics of this flag was changed in commit e1111cef23 inline lookup_replace_object() calls but wasn't renamed at the time to minimize code churn. Rename it now, and add a comment explaining its use. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- cache.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'cache.h') diff --git a/cache.h b/cache.h index dc040fb1aa..b039abce03 100644 --- a/cache.h +++ b/cache.h @@ -580,7 +580,17 @@ extern size_t packed_git_limit; extern size_t delta_base_cache_limit; extern unsigned long big_file_threshold; extern unsigned long pack_size_limit_cfg; -extern int read_replace_refs; + +/* + * Do replace refs need to be checked this run? This variable is + * initialized to true unless --no-replace-object is used or + * $GIT_NO_REPLACE_OBJECTS is set, but is set to false by some + * commands that do not want replace references to be active. As an + * optimization it is also set to false if replace references have + * been sought but there were none. + */ +extern int check_replace_refs; + extern int fsync_object_files; extern int core_preload_index; extern int core_apply_sparse_checkout; @@ -791,7 +801,7 @@ static inline void *read_sha1_file(const unsigned char *sha1, enum object_type * extern const unsigned char *do_lookup_replace_object(const unsigned char *sha1); static inline const unsigned char *lookup_replace_object(const unsigned char *sha1) { - if (!read_replace_refs) + if (!check_replace_refs) return sha1; return do_lookup_replace_object(sha1); } -- cgit v1.3-5-g9baa From 1f91e79cf61eaa7cb26eb0aa1e257b7681c4c328 Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Fri, 28 Feb 2014 17:29:16 +0100 Subject: Add docstrings for lookup_replace_object() and do_lookup_replace_object() Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- cache.h | 13 +++++++++++++ replace_object.c | 7 +++++++ 2 files changed, 20 insertions(+) (limited to 'cache.h') diff --git a/cache.h b/cache.h index b039abce03..9407560fcd 100644 --- a/cache.h +++ b/cache.h @@ -798,13 +798,26 @@ static inline void *read_sha1_file(const unsigned char *sha1, enum object_type * { return read_sha1_file_extended(sha1, type, size, LOOKUP_REPLACE_OBJECT); } + +/* + * This internal function is only declared here for the benefit of + * lookup_replace_object(). Please do not call it directly. + */ extern const unsigned char *do_lookup_replace_object(const unsigned char *sha1); + +/* + * If object sha1 should be replaced, return the replacement object's + * name (replaced recursively, if necessary). The return value is + * either sha1 or a pointer to a permanently-allocated value. When + * object replacement is suppressed, always return sha1. + */ static inline const unsigned char *lookup_replace_object(const unsigned char *sha1) { if (!check_replace_refs) return sha1; return do_lookup_replace_object(sha1); } + static inline const unsigned char *lookup_replace_object_extended(const unsigned char *sha1, unsigned flag) { if (!(flag & LOOKUP_REPLACE_OBJECT)) diff --git a/replace_object.c b/replace_object.c index c5cf9f4467..31fabde72b 100644 --- a/replace_object.c +++ b/replace_object.c @@ -92,6 +92,13 @@ static void prepare_replace_object(void) /* We allow "recursive" replacement. Only within reason, though */ #define MAXREPLACEDEPTH 5 +/* + * If a replacement for object sha1 has been set up, return the + * replacement object's name (replaced recursively, if necessary). + * The return value is either sha1 or a pointer to a + * permanently-allocated value. This function always respects replace + * references, regardless of the value of check_replace_refs. + */ const unsigned char *do_lookup_replace_object(const unsigned char *sha1) { int pos, depth = MAXREPLACEDEPTH; -- cgit v1.3-5-g9baa