Merge branch 'mh/loose-refs-race-with-pack-ref'
commitd1314826935392d38e3bb2df754762a402d0af00
authorJunio C Hamano <gitster@pobox.com>
Sun, 30 Jun 2013 22:39:47 +0000 (30 15:39 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 30 Jun 2013 22:39:47 +0000 (30 15:39 -0700)
tree369c715f5349c997fc00816415fe390f625dfefb
parent96ffd4ca937616c4a419cb9e2ef80b3156acaf80
parentfcb7c76274570e74fd9a9ac429095b07c2f34c64
Merge branch 'mh/loose-refs-race-with-pack-ref'

We read loose and packed rerferences in two steps, but after
deciding to read a loose ref but before actually opening it to read
it, another process racing with us can unlink it, which would cause
us to barf. Update the codepath to retry when such a race is
detected.

* mh/loose-refs-race-with-pack-ref:
  resolve_ref_unsafe(): close race condition reading loose refs
  resolve_ref_unsafe(): handle the case of an SHA-1 within loop
  resolve_ref_unsafe(): extract function handle_missing_loose_ref()