I have realized that this wasn't fixed after all when refs.c
was "rewritten". Issue is caused by broken symlink under refs/heads,
which causes infinite loop for "git ls-tree" command. It was replied
earlier  and Michael previously fixed that in better way probably,
then my proposed patch 2/2, but it contains more changes and I have not
enough time to study changes in refs* code, so I propose now just my
little patch, which was previously modified by Michael.
If you prefer different solution, I am ok with this. It is really
just quick proposal. Patch 1/2 contains test for this issue. If you
will prefer different solution with different exit code, test should
be corrected. Basic idea is, that timeout should'n expire with
exit code 124.
 https://github.com/mhagger/git, branch "ref-broken-symlinks"
Michael Haggerty (1):
resolve_ref_unsafe(): limit the number of "stat_ref" retries
Petr Stodulka (1):
Add test for ls-tree with broken symlink under refs/heads
refs/files-backend.c | 6 ++++--
refs/refs-internal.h | 6 ++++++
t/t3103-ls-tree-misc.sh | 9 +++++++++
3 files changed, 19 insertions(+), 2 deletions(-)