From d944abb28ea70d98d36598a1f30c3738a431013e Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 16 Nov 2025 00:00:00 +0000 Subject: All Serialize should be able to error out --- obj_commit.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'obj_commit.go') diff --git a/obj_commit.go b/obj_commit.go index 8abb363f..2b87322f 100644 --- a/obj_commit.go +++ b/obj_commit.go @@ -91,27 +91,38 @@ func parseCommit(id Hash, body []byte, repo *Repository) (*Commit, error) { return c, nil } -func commitBody(c *Commit) []byte { +func commitBody(c *Commit) ([]byte, error) { var buf bytes.Buffer fmt.Fprintf(&buf, "tree %s\n", c.Tree.String()) for _, p := range c.Parents { fmt.Fprintf(&buf, "parent %s\n", p.String()) } buf.WriteString("author ") - buf.Write(c.Author.Serialize()) + ab, err := c.Author.Serialize() + if err != nil { + return nil, err + } + buf.Write(ab) buf.WriteByte('\n') buf.WriteString("committer ") - buf.Write(c.Committer.Serialize()) + cb, err := c.Committer.Serialize() + if err != nil { + return nil, err + } + buf.Write(cb) buf.WriteByte('\n') buf.WriteByte('\n') buf.Write(c.Message) - return buf.Bytes() + return buf.Bytes(), nil } // Serialize renders a Commit into canonical Git format. func (commit *Commit) Serialize() ([]byte, error) { - body := commitBody(commit) + body, err := commitBody(commit) + if err != nil { + return nil, err + } header, err := headerForType(ObjCommit, body) if err != nil { return nil, err -- cgit v1.3.1-10-gc9f91