Re: Reading commit objects
- From
Shawn Pearce <spearce@spearce.org>
- Date
- May 22, 2013, 19:59 UTC
- Message-ID
- <CAJo=hJt7W4O3L6M6TmEvEfCKvjqwdXHAbSjCwazuzNsPzeKvhA@mail.gmail.com>
- In-Reply-To
- <CABx5MBSmCN=avRDCJ+RU8FoRDaGG=6uRfTdVR9m3A=SqpuKAjQ@mail.gmail.com>
On Wed, May 22, 2013 at 7:25 AM, Chico Sokol <chico.sokol@gmail.com> wrote:
Show 7 quoted lines
>> Your code is broken. IOUtils is probably corrupting what you get back.
>> After inflating the stream you should see the object type ("commit"),
>> space, its length in bytes as a base 10 string, and then a NUL ('\0').
>> Following that is the tree line, and parent(s) if any. I wonder if
>> IOUtils discarded the remainder of the line after the NUL and did not
>> consider the tree line.
>...
> Is the contents of a unpacked object utf-8 > encoded?
Its more complicated than that. Commit objects are usually in utf-8, unless a repository configuration setting told you otherwise, or an encoding header appears in the commit. And sometimes that data lies anyway. ISO-8859-1 is one of the safer forms of reading a commit, but that also isn't always accurate.