read_raw_ref(): don't get confused by an empty directory
Even if there is an empty directory where we look for the loose version of a reference, check for a packed reference before giving up. This fixes the failing test that was introduced two commits ago. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
This commit is contained in:
parent
5387c0d883
commit
e167a5673e
@ -1477,7 +1477,16 @@ stat_ref:
|
||||
|
||||
/* Is it a directory? */
|
||||
if (S_ISDIR(st.st_mode)) {
|
||||
errno = EISDIR;
|
||||
/*
|
||||
* Even though there is a directory where the loose
|
||||
* ref is supposed to be, there could still be a
|
||||
* packed ref:
|
||||
*/
|
||||
if (resolve_missing_loose_ref(refname, sha1, flags)) {
|
||||
errno = EISDIR;
|
||||
goto out;
|
||||
}
|
||||
ret = 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -106,7 +106,7 @@ test_expect_success 'one new ref is a simple prefix of another' '
|
||||
|
||||
'
|
||||
|
||||
test_expect_failure 'empty directory should not fool rev-parse' '
|
||||
test_expect_success 'empty directory should not fool rev-parse' '
|
||||
prefix=refs/e-rev-parse &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
git pack-refs --all &&
|
||||
|
Loading…
Reference in New Issue
Block a user