Re: How can I tell if a SHA1 is a submodule reference?
Thanks for the replies -- checking the mode bits was the ticket.
Robin
On May 15, 2008, at 1:21 PM, Junio C Hamano wrote:
Show 29 quoted lines
> Robin Luckey <robin@ohloh.net> writes:
>
>> 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.
>
> I presume you are reading "diff-tree --raw" format output. The mode
> bits
> for submodules (aka gitlinks) are 160000, as opposed to either
> 100644 or
> 100755 for regular files and 120000 for symbolic links.
>
>