lock_ref_sha1_basic(): improve diagnostics for ref D/F conflicts
commit5b2d8d6f2184381b76c13504a2f5ec8a62cd584e
authorMichael Haggerty <mhagger@alum.mit.edu>
Mon, 11 May 2015 15:25:16 +0000 (11 17:25 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 May 2015 18:50:20 +0000 (11 11:50 -0700)
tree88b3577217ab62679ae9d3107b176cf0e6df71f1
parent4a32b2e08be8daf965949956e8ea16718797a031
lock_ref_sha1_basic(): improve diagnostics for ref D/F conflicts

If there is a failure to lock a reference that is likely caused by a
D/F conflict (e.g., trying to lock "refs/foo/bar" when reference
"refs/foo" already exists), invoke verify_refname_available() to try
to generate a more helpful error message.

That function might not detect an error. For example, some
non-reference file might be blocking the deletion of an
otherwise-empty directory tree, or there might be a race with another
process that just deleted the offending reference. In such cases,
generate the strerror-based error message like before.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
refs.c
t/t1404-update-ref-df-conflicts.sh