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

Method SetEncodedObject

storage/filesystem/object.go:126–154  ·  view source on GitHub ↗

SetEncodedObject adds a new object to the storage.

(o plumbing.EncodedObject)

Source from the content-addressed store, hash-verified

124
125// SetEncodedObject adds a new object to the storage.
126func (s *ObjectStorage) SetEncodedObject(o plumbing.EncodedObject) (h plumbing.Hash, err error) {
127 if o.Type() == plumbing.OFSDeltaObject || o.Type() == plumbing.REFDeltaObject {
128 return plumbing.ZeroHash, plumbing.ErrInvalidType
129 }
130
131 ow, err := s.dir.NewObject()
132 if err != nil {
133 return plumbing.ZeroHash, err
134 }
135
136 defer ioutil.CheckClose(ow, &err)
137
138 or, err := o.Reader()
139 if err != nil {
140 return plumbing.ZeroHash, err
141 }
142
143 defer ioutil.CheckClose(or, &err)
144
145 if err = ow.WriteHeader(o.Type(), o.Size()); err != nil {
146 return plumbing.ZeroHash, err
147 }
148
149 if _, err = io.Copy(ow, or); err != nil {
150 return plumbing.ZeroHash, err
151 }
152
153 return o.Hash(), err
154}
155
156// LazyWriter returns a lazy ObjectWriter that is bound to a DotGit file.
157// It first write the header passing on the object type and size, so

Callers

nothing calls this directly

Calls 7

CheckCloseFunction · 0.92
NewObjectMethod · 0.80
WriteHeaderMethod · 0.80
TypeMethod · 0.65
ReaderMethod · 0.65
SizeMethod · 0.65
HashMethod · 0.65

Tested by

no test coverage detected