summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2015-07-27 12:21:38 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2015-07-27 12:21:38 -0700
commitde62fe8c421344c34d375fc315f33eeb584ab538 (patch)
tree262646e6412478d81e7457c284b9b57edc6152a9 /cache.h
parentGit 2.4.6 (diff)
parentindex-pack: avoid excessive re-reading of pack directory (diff)
downloadtgif-de62fe8c421344c34d375fc315f33eeb584ab538.tar.xz
Merge branch 'jk/index-pack-reduce-recheck' into maint
Disable "have we lost a race with competing repack?" check while receiving a huge object transfer that runs index-pack. * jk/index-pack-reduce-recheck: index-pack: avoid excessive re-reading of pack directory
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/cache.h b/cache.h
index badf3da340..4427945bc0 100644
--- a/cache.h
+++ b/cache.h
@@ -901,8 +901,17 @@ extern int has_sha1_pack(const unsigned char *sha1);
* Return true iff we have an object named sha1, whether local or in
* an alternate object database, and whether packed or loose. This
* function does not respect replace references.
+ *
+ * If the QUICK flag is set, do not re-check the pack directory
+ * when we cannot find the object (this means we may give a false
+ * negative answer if another process is simultaneously repacking).
*/
-extern int has_sha1_file(const unsigned char *sha1);
+#define HAS_SHA1_QUICK 0x1
+extern int has_sha1_file_with_flags(const unsigned char *sha1, int flags);
+static inline int has_sha1_file(const unsigned char *sha1)
+{
+ return has_sha1_file_with_flags(sha1, 0);
+}
/*
* Return true iff an alternate object database has a loose object