git ls-tree -d doesn't work if the specified path is the repository root?
- From
- Roy Wellington <deathanatos@gmail.com>
- Date
- Sep 25, 2017, 19:14 UTC
- Message-ID
- <CAF5E6=pqGZt_BUDRDeN2uAQK7qBTeO+zcR8NsvSPg-rLjbsqdQ@mail.gmail.com>
Hi,
When I run `git ls-tree -d HEAD -- subdir` from the root of my repository, where `subdir` is a subdirectory in that root, I get the treehash of that subdirectory. This is what I expect.
However, if I merely replace `subdir` with `.` (the root of the repository), (i.e., `git ls-tree -d HEAD -- .`) git ls-tree returns the treehashes of the /children/ of the root, instead of the root itself, contrary to the documented behavior of -d.
Is there some reason for this? This behavior seems like a bug to me: it means that prior to calling ls-tree I need to check if the referenced path happens to be the root, and if so, find some other means (rev-parse?) of converting it to a treehash.
Thanks, —Roy