git status --ignored hangs when a deep directory structure present in working tree
- From
- Martin Melka <martin.melka@gmail.com>
- Date
- Jan 27, 2020, 10:55 UTC
- Message-ID
- <CANt4O2L_DZnMqVxZzTBMvr=BTWqB6L0uyORkoN_yMHLmUX7yHw@mail.gmail.com>
Hi all, I have ran across what might be a bug in git. When there is a deep directory structure (tried on 100+ nested dirs), then git status --ignored hangs indefinitely. Discovered this on OSX (Mojave, git 2.20.1 (Apple Git-117)), but it reproduces in Ubuntu (19.04, git 2.25.0) Docker container on OSX and also on baremetal Ubuntu server (16.04, git 2.17.1).
Steps to reproduce:
1. Generate the deep dir structure:
mkdir gittest; pushd gittest; git init; for i in $(seq 1 120); do mkdir dir; cd dir; done; touch leaf; popd
2. Try to get git status --ignored
cd gittest && git status --ignored
If there is a dir depth limit, git should probably exit with an error rather than getting stuck endlessly.
StackOverflow report: https://stackoverflow.com/questions/59928800/git-status-ignored-hangs-indefinitely
Best regards, Martin Melka