MCPcopy
hub / github.com/go-git/go-git / encode

Method encode

plumbing/object/commit.go:357–444  ·  view source on GitHub ↗
(o plumbing.EncodedObject, includeSig bool)

Source from the content-addressed store, hash-verified

355}
356
357func (c *Commit) encode(o plumbing.EncodedObject, includeSig bool) (err error) {
358 o.SetType(plumbing.CommitObject)
359 w, err := o.Writer()
360 if err != nil {
361 return err
362 }
363
364 defer ioutil.CheckClose(w, &err)
365
366 if _, err = fmt.Fprintf(w, "tree %s\n", c.TreeHash.String()); err != nil {
367 return err
368 }
369
370 for _, parent := range c.ParentHashes {
371 if _, err = fmt.Fprintf(w, "parent %s\n", parent.String()); err != nil {
372 return err
373 }
374 }
375
376 if _, err = fmt.Fprint(w, "author "); err != nil {
377 return err
378 }
379
380 if err = c.Author.Encode(w); err != nil {
381 return err
382 }
383
384 if _, err = fmt.Fprint(w, "\ncommitter "); err != nil {
385 return err
386 }
387
388 if err = c.Committer.Encode(w); err != nil {
389 return err
390 }
391
392 if c.MergeTag != "" {
393 if _, err = fmt.Fprint(w, "\n"+headermergetag+" "); err != nil {
394 return err
395 }
396
397 // Split tag information lines and re-write with a left padding and
398 // newline. Use join for this so it's clear that a newline should not be
399 // added after this section. The newline will be added either as part of
400 // the PGP signature or the commit message.
401 mergetag := strings.TrimSuffix(c.MergeTag, "\n")
402 lines := strings.Split(mergetag, "\n")
403 if _, err = fmt.Fprint(w, strings.Join(lines, "\n ")); err != nil {
404 return err
405 }
406 }
407
408 if string(c.Encoding) != "" && c.Encoding != defaultUtf8CommitMessageEncoding {
409 if _, err = fmt.Fprintf(w, "\n%s %s", headerencoding, c.Encoding); err != nil {
410 return err
411 }
412 }
413
414 for _, header := range c.ExtraHeaders {

Callers 2

EncodeMethod · 0.95

Calls 7

CheckCloseFunction · 0.92
isStandardHeaderFunction · 0.85
JoinMethod · 0.80
SetTypeMethod · 0.65
WriterMethod · 0.65
StringMethod · 0.65
EncodeMethod · 0.65

Tested by

no test coverage detected