How can I tell if a SHA1 is a submodule reference?
- From
- Robin Luckey <robin@ohloh.net>
- Date
- May 15, 2008, 19:39 UTC
- Message-ID
- <7F242E8F-13CF-4BE5-B3E6-85F285391658@ohloh.net>
I am parsing the output of git-diff-tree to create some code analysis reports.
When a user adds a submodule to a repository, git-diff-tree reports the SHA1 of the commit from the submodule.
However, if I subsequently try to pass this SHA1 to git-cat-file, or indeed any other git command I have tried, I receive an error:
error: unable to find b0f8c354b142e27333abd0f175544b71a0cc444e fatal: Not a valid object name b0f8c354b142e27333abd0f175544b71a0cc444e
This makes sense to me, since these objects are not stored locally; they are stored in the submodule repository.
However, is there a simple and reliable way for me to know which SHA1 hashes refer to such submodule objects? I'd like to simply ignore them.
My ideal feature would be that `git cat-file -t` would respond with `submodule`, but of course this does not happen. Long term, an '-- ingore-submodules' flag for git would be great since I wouldn't see these hashes in the first place.
However, today, given an arbitrary hash, how can I tell whether it is a submodule commit?
Thanks, Robin