On Thu, 15 May 2008, Robin Luckey wrote: > > 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. Only if you still have the tree references they came from. In other words, once you *only* have the SHA1, you're kind of screwed, because by that time you've lost the context, and the SHA1 itself contains no information about what kind of thing it is. But when running git-diff-tree, you still have the source of the SHA1, and the tree entry in particular. The tree entry will have a "gitlink" marker, ie the "mode" will be 0160000. Linus -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html