public override void Deserialize(GitObjectReader input)
{
//Skip 'tree' at beginning of line and read tree sha
input.ReadWord();
_treeSha = input.ReadLine().GetString();
// Check for 'parent' at beginning of line
_parentShas = new List<string>();
string parentOrAuthor = input.ReadWord().GetString();
// TODO: Make recursive
while (parentOrAuthor == "parent")
{
_parentShas.Add(input.GetString(40));
input.Position++;
// Skip 'author'
parentOrAuthor = input.ReadWord().GetString();
}
// Author
string authorLine = input.ReadLine().GetString();
AuthoredDate = Utility.StripDate(authorLine, out authorLine);
Author = Contributer.Parse(authorLine);
// Committer
input.ReadWord();
string committerLine = input.ReadLine().GetString();
CommittedDate = Utility.StripDate(committerLine, out committerLine);
Committer = Contributer.Parse(committerLine);
//Skip extra '\n'
input.Position++;
Message = input.ReadToEnd().GetString().TrimEnd();
}