Hi, Roy Wellington wrote: > 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. Can you be more specific? What documentation led you to this expectation? I don't have a strong opinion about this behavior, but in any case if the documentation and command disagree about the correct behavior then one of them needs to be fixed. :) > 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. Does git rev-parse HEAD:subdir work better for what you're trying to accomplish? To get the root of the repository, you can use git rev-parse HEAD: Thanks and hope that helps, Jonathan