MCPcopy Index your code
hub / github.com/go-git/go-git / readExtensions

Method readExtensions

plumbing/format/index/decoder.go:241–271  ·  view source on GitHub ↗
(idx *Index)

Source from the content-addressed store, hash-verified

239}
240
241func (d *Decoder) readExtensions(idx *Index) error {
242 // TODO: support 'Split index' and 'Untracked cache' extensions, take in
243 // count that they are not supported by jgit or libgit
244
245 var expected []byte
246 var peeked []byte
247 var err error
248
249 // we should always be able to peek for 4 bytes (header) + 4 bytes (extlen) + final hash
250 // if this fails, we know that we're at the end of the index
251 peekLen := 4 + 4 + d.hash.Size()
252
253 for {
254 expected = d.hash.Sum(nil)
255 peeked, err = d.buf.Peek(peekLen)
256 if len(peeked) < peekLen {
257 // there can't be an extension at this point, so let's bail out
258 break
259 }
260 if err != nil {
261 return err
262 }
263
264 err = d.readExtension(idx)
265 if err != nil {
266 return err
267 }
268 }
269
270 return d.readChecksum(expected)
271}
272
273func (d *Decoder) readExtension(idx *Index) error {
274 var header [4]byte

Callers 1

DecodeMethod · 0.95

Calls 5

readExtensionMethod · 0.95
readChecksumMethod · 0.95
SumMethod · 0.80
SizeMethod · 0.65
PeekMethod · 0.65

Tested by

no test coverage detected