dotGit.Objects.Commit.Deserialize C# (CSharp) Method

Deserialize() public method

Loads the commit from the GitObjectReader
public Deserialize ( GitObjectReader input ) : void
input GitObjectReader A reader with inflated commit contents
return void
        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();
        }