diff options
| author | 2025-11-16 00:00:00 +0000 | |
|---|---|---|
| committer | 2025-11-16 00:00:00 +0000 | |
| commit | d944abb28ea70d98d36598a1f30c3738a431013e (patch) | |
| tree | 23347a489b7668cbc2d754ecc2c010acfde0b7d0 /obj_commit.go | |
| parent | Rename ObjType -> ObjectType (diff) | |
| signature | ||
All Serialize should be able to error out
Diffstat (limited to 'obj_commit.go')
| -rw-r--r-- | obj_commit.go | 21 |
1 files changed, 16 insertions, 5 deletions
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 |
