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? */
|
/* Is it a directory? */
|
||||||
if (S_ISDIR(st.st_mode)) {
|
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;
|
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 &&
|
prefix=refs/e-rev-parse &&
|
||||||
git update-ref $prefix/foo $C &&
|
git update-ref $prefix/foo $C &&
|
||||||
git pack-refs --all &&
|
git pack-refs --all &&
|
||||||
|
Loading…
Reference in New Issue
Block a user