Skip to content

Commit

Permalink
Merge branch 'jk/has-sha1-file-retry-packed'
Browse files Browse the repository at this point in the history
When an object is not found after checking the packfiles and then
loose object directory, read_sha1_file() re-checks the packfiles to
prevent racing with a concurrent repacker; teach the same logic to
has_sha1_file().

* jk/has-sha1-file-retry-packed:
  has_sha1_file: re-check pack directory before giving up
  • Loading branch information
Junio C Hamano committed Sep 17, 2013
2 parents 541dc4d + 45e8a74 commit 5ff9f23
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion sha1_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -2995,7 +2995,10 @@ int has_sha1_file(const unsigned char *sha1)

if (find_pack_entry(sha1, &e))
return 1;
return has_loose_object(sha1);
if (has_loose_object(sha1))
return 1;
reprepare_packed_git();
return find_pack_entry(sha1, &e);
}

static void check_tree(const void *buf, size_t size)
Expand Down

0 comments on commit 5ff9f23

Please sign in to comment.