Fast implementation of Git in pure Go

Revert "object/header: Rename from objectheader"

This reverts commit 85f1212724e037e6934203f04a3f6231ac609503.

runxiyu.tngl.sh 8630ab3a 85f12127

verified
+44 -44
+2 -2
object/blob_serialize.go
··· 3 3 import ( 4 4 "errors" 5 5 6 - "codeberg.org/lindenii/furgit/object/header" 6 + "codeberg.org/lindenii/furgit/objectheader" 7 7 "codeberg.org/lindenii/furgit/objecttype" 8 8 ) 9 9 ··· 19 19 return nil, err 20 20 } 21 21 22 - header, ok := header.Encode(objecttype.TypeBlob, int64(len(body))) 22 + header, ok := objectheader.Encode(objecttype.TypeBlob, int64(len(body))) 23 23 if !ok { 24 24 return nil, errors.New("object: blob: failed to encode object header") 25 25 }
+2 -2
object/commit_serialize.go
··· 5 5 "errors" 6 6 "fmt" 7 7 8 - "codeberg.org/lindenii/furgit/object/header" 8 + "codeberg.org/lindenii/furgit/objectheader" 9 9 "codeberg.org/lindenii/furgit/objecttype" 10 10 ) 11 11 ··· 71 71 return nil, err 72 72 } 73 73 74 - header, ok := header.Encode(objecttype.TypeCommit, int64(len(body))) 74 + header, ok := objectheader.Encode(objecttype.TypeCommit, int64(len(body))) 75 75 if !ok { 76 76 return nil, errors.New("object: commit: failed to encode object header") 77 77 }
+1 -1
object/header/append.go objectheader/append.go
··· 1 - package header 1 + package objectheader 2 2 3 3 import ( 4 4 "strconv"
+1 -1
object/header/encode.go objectheader/encode.go
··· 1 - package header 1 + package objectheader 2 2 3 3 import "codeberg.org/lindenii/furgit/objecttype" 4 4
+2 -2
object/header/parse.go objectheader/parse.go
··· 1 - // Package header parses and serializes object headers ("type size\0"). 2 - package header 1 + // Package objectheader parses and serializes object headers ("type size\0"). 2 + package objectheader 3 3 4 4 import ( 5 5 "bytes"
+2 -2
object/parse.go
··· 3 3 import ( 4 4 "fmt" 5 5 6 - "codeberg.org/lindenii/furgit/object/header" 6 + "codeberg.org/lindenii/furgit/objectheader" 7 7 "codeberg.org/lindenii/furgit/objectid" 8 8 "codeberg.org/lindenii/furgit/objecttype" 9 9 ) ··· 12 12 // 13 13 //nolint:ireturn 14 14 func ParseObjectWithHeader(raw []byte, algo objectid.Algorithm) (Object, error) { 15 - ty, size, headerLen, ok := header.Parse(raw) 15 + ty, size, headerLen, ok := objectheader.Parse(raw) 16 16 if !ok { 17 17 return nil, fmt.Errorf("object: malformed object header") 18 18 }
+2 -2
object/tag_serialize.go
··· 5 5 "errors" 6 6 "fmt" 7 7 8 - "codeberg.org/lindenii/furgit/object/header" 8 + "codeberg.org/lindenii/furgit/objectheader" 9 9 "codeberg.org/lindenii/furgit/objecttype" 10 10 ) 11 11 ··· 55 55 return nil, err 56 56 } 57 57 58 - header, ok := header.Encode(objecttype.TypeTag, int64(len(body))) 58 + header, ok := objectheader.Encode(objecttype.TypeTag, int64(len(body))) 59 59 if !ok { 60 60 return nil, errors.New("object: tag: failed to encode object header") 61 61 }
+2 -2
object/tree_serialize.go
··· 4 4 "errors" 5 5 "strconv" 6 6 7 - "codeberg.org/lindenii/furgit/object/header" 7 + "codeberg.org/lindenii/furgit/objectheader" 8 8 "codeberg.org/lindenii/furgit/objecttype" 9 9 ) 10 10 ··· 42 42 return nil, err 43 43 } 44 44 45 - header, ok := header.Encode(objecttype.TypeTree, int64(len(body))) 45 + header, ok := objectheader.Encode(objecttype.TypeTree, int64(len(body))) 46 46 if !ok { 47 47 return nil, errors.New("object: tree: failed to encode object header") 48 48 }
+3 -3
objectstore/loose/helpers_test.go
··· 5 5 "testing" 6 6 7 7 "codeberg.org/lindenii/furgit/internal/testgit" 8 - "codeberg.org/lindenii/furgit/object/header" 8 + "codeberg.org/lindenii/furgit/objectheader" 9 9 "codeberg.org/lindenii/furgit/objectid" 10 10 "codeberg.org/lindenii/furgit/objectstore/loose" 11 11 "codeberg.org/lindenii/furgit/objecttype" ··· 54 54 55 55 body := testRepo.CatFile(t, typeName, id) 56 56 57 - header, ok := header.Encode(ty, int64(len(body))) 57 + header, ok := objectheader.Encode(ty, int64(len(body))) 58 58 if !ok { 59 - t.Fatalf("header.Encode failed") 59 + t.Fatalf("objectheader.Encode failed") 60 60 } 61 61 62 62 raw := make([]byte, len(header)+len(body))
+5 -5
objectstore/loose/parse.go
··· 7 7 "os" 8 8 9 9 "codeberg.org/lindenii/furgit/internal/compress/zlib" 10 - "codeberg.org/lindenii/furgit/object/header" 10 + "codeberg.org/lindenii/furgit/objectheader" 11 11 "codeberg.org/lindenii/furgit/objecttype" 12 12 ) 13 13 ··· 25 25 26 26 // parseRaw parses a loose object payload in "type size\0content" format. 27 27 func parseRaw(raw []byte) (objecttype.Type, []byte, error) { 28 - ty, size, headerLen, ok := header.Parse(raw) 28 + ty, size, headerLen, ok := objectheader.Parse(raw) 29 29 if !ok { 30 30 return objecttype.TypeInvalid, nil, errors.New("objectstore/loose: malformed object header") 31 31 } ··· 41 41 // readHeader reads and parses a loose object header from br, and returns 42 42 // the raw header bytes including the trailing NUL. 43 43 func readHeader(br *bufio.Reader) ([]byte, objecttype.Type, int64, error) { 44 - h, err := br.ReadSlice(0) 44 + header, err := br.ReadSlice(0) 45 45 if err != nil { 46 46 return nil, objecttype.TypeInvalid, 0, err 47 47 } 48 48 49 - ty, size, _, ok := header.Parse(h) 49 + ty, size, _, ok := objectheader.Parse(header) 50 50 if !ok { 51 51 return nil, objecttype.TypeInvalid, 0, errors.New("objectstore/loose: malformed object header") 52 52 } 53 53 54 - return h, ty, size, nil 54 + return header, ty, size, nil 55 55 }
+2 -2
objectstore/loose/write_reader.go
··· 4 4 "fmt" 5 5 "io" 6 6 7 - "codeberg.org/lindenii/furgit/object/header" 7 + "codeberg.org/lindenii/furgit/objectheader" 8 8 "codeberg.org/lindenii/furgit/objectid" 9 9 "codeberg.org/lindenii/furgit/objecttype" 10 10 ) ··· 18 18 return objectid.ObjectID{}, fmt.Errorf("objectstore/loose: negative content size: %d", size) 19 19 } 20 20 21 - header, ok := header.Encode(ty, size) 21 + header, ok := objectheader.Encode(ty, size) 22 22 if !ok { 23 23 return objectid.ObjectID{}, fmt.Errorf("objectstore/loose: failed to encode object header for type %v", ty) 24 24 }
+3 -3
objectstore/loose/write_test.go
··· 5 5 "testing" 6 6 7 7 "codeberg.org/lindenii/furgit/internal/testgit" 8 - "codeberg.org/lindenii/furgit/object/header" 8 + "codeberg.org/lindenii/furgit/objectheader" 9 9 "codeberg.org/lindenii/furgit/objectid" 10 10 "codeberg.org/lindenii/furgit/objecttype" 11 11 ) ··· 58 58 59 59 body := []byte("full-reader-body\n") 60 60 61 - header, ok := header.Encode(objecttype.TypeBlob, int64(len(body))) 61 + header, ok := objectheader.Encode(objecttype.TypeBlob, int64(len(body))) 62 62 if !ok { 63 - t.Fatalf("header.Encode failed") 63 + t.Fatalf("objectheader.Encode failed") 64 64 } 65 65 66 66 raw := make([]byte, len(header)+len(body))
+2 -2
objectstore/loose/write_writer_accept.go
··· 4 4 "bytes" 5 5 "errors" 6 6 7 - "codeberg.org/lindenii/furgit/object/header" 7 + "codeberg.org/lindenii/furgit/objectheader" 8 8 ) 9 9 10 10 // acceptFull validates and accounts raw full-object input. ··· 15 15 headerChunkLen := nul + 1 16 16 writer.headerBuf = append(writer.headerBuf, src[:headerChunkLen]...) 17 17 18 - _, size, _, ok := header.Parse(writer.headerBuf) 18 + _, size, _, ok := objectheader.Parse(writer.headerBuf) 19 19 if !ok { 20 20 return errors.New("objectstore/loose: malformed object header") 21 21 }
+2 -2
objectstore/memory/add.go
··· 1 1 package memory 2 2 3 3 import ( 4 - "codeberg.org/lindenii/furgit/object/header" 4 + "codeberg.org/lindenii/furgit/objectheader" 5 5 "codeberg.org/lindenii/furgit/objectid" 6 6 "codeberg.org/lindenii/furgit/objecttype" 7 7 ) 8 8 9 9 // AddObject stores one object body and returns its object ID. 10 10 func (store *Store) AddObject(ty objecttype.Type, body []byte) objectid.ObjectID { 11 - header, ok := header.Encode(ty, int64(len(body))) 11 + header, ok := objectheader.Encode(ty, int64(len(body))) 12 12 if !ok { 13 13 panic("failed to encode object header") 14 14 }
+2 -2
objectstore/memory/read_bytes.go
··· 1 1 package memory 2 2 3 3 import ( 4 - "codeberg.org/lindenii/furgit/object/header" 4 + "codeberg.org/lindenii/furgit/objectheader" 5 5 "codeberg.org/lindenii/furgit/objectid" 6 6 "codeberg.org/lindenii/furgit/objectstore" 7 7 "codeberg.org/lindenii/furgit/objecttype" ··· 14 14 return nil, objectstore.ErrObjectNotFound 15 15 } 16 16 17 - header, ok := header.Encode(obj.ty, int64(len(obj.content))) 17 + header, ok := objectheader.Encode(obj.ty, int64(len(obj.content))) 18 18 if !ok { 19 19 panic("failed to encode object header") 20 20 }
+3 -3
objectstore/packed/helpers_test.go
··· 8 8 "testing" 9 9 10 10 "codeberg.org/lindenii/furgit/internal/testgit" 11 - "codeberg.org/lindenii/furgit/object/header" 11 + "codeberg.org/lindenii/furgit/objectheader" 12 12 "codeberg.org/lindenii/furgit/objectid" 13 13 "codeberg.org/lindenii/furgit/objectstore/packed" 14 14 "codeberg.org/lindenii/furgit/objecttype" ··· 57 57 58 58 body := testRepo.CatFile(t, typeName, id) 59 59 60 - header, ok := header.Encode(ty, int64(len(body))) 60 + header, ok := objectheader.Encode(ty, int64(len(body))) 61 61 if !ok { 62 - t.Fatalf("header.Encode failed") 62 + t.Fatalf("objectheader.Encode failed") 63 63 } 64 64 65 65 raw := make([]byte, len(header)+len(body))
+2 -2
objectstore/packed/read_bytes.go
··· 3 3 import ( 4 4 "fmt" 5 5 6 - "codeberg.org/lindenii/furgit/object/header" 6 + "codeberg.org/lindenii/furgit/objectheader" 7 7 "codeberg.org/lindenii/furgit/objectid" 8 8 "codeberg.org/lindenii/furgit/objecttype" 9 9 ) ··· 25 25 return nil, err 26 26 } 27 27 28 - header, ok := header.Encode(ty, int64(len(content))) 28 + header, ok := objectheader.Encode(ty, int64(len(content))) 29 29 if !ok { 30 30 return nil, fmt.Errorf("objectstore/packed: failed to encode object header for type %d", ty) 31 31 }
+2 -2
objectstore/packed/read_reader.go
··· 6 6 "io" 7 7 8 8 "codeberg.org/lindenii/furgit/internal/iolimit" 9 - "codeberg.org/lindenii/furgit/object/header" 9 + "codeberg.org/lindenii/furgit/objectheader" 10 10 "codeberg.org/lindenii/furgit/objectid" 11 11 "codeberg.org/lindenii/furgit/objecttype" 12 12 packfmt "codeberg.org/lindenii/furgit/packfile" ··· 61 61 } 62 62 63 63 if packfmt.IsBaseObjectType(meta.ty) { 64 - header, ok := header.Encode(meta.ty, meta.size) 64 + header, ok := objectheader.Encode(meta.ty, meta.size) 65 65 if !ok { 66 66 return nil, fmt.Errorf("objectstore/packed: failed to encode object header for type %d", meta.ty) 67 67 }
+2 -2
packfile/ingest/drain.go
··· 5 5 "io" 6 6 7 7 "codeberg.org/lindenii/furgit/internal/compress/zlib" 8 - "codeberg.org/lindenii/furgit/object/header" 8 + "codeberg.org/lindenii/furgit/objectheader" 9 9 "codeberg.org/lindenii/furgit/objectid" 10 10 "codeberg.org/lindenii/furgit/objecttype" 11 11 packfmt "codeberg.org/lindenii/furgit/packfile" ··· 26 26 var total int64 27 27 28 28 if packfmt.IsBaseObjectType(record.packedType) { 29 - header, ok := header.Encode(record.packedType, record.declaredSize) 29 + header, ok := objectheader.Encode(record.packedType, record.declaredSize) 30 30 if !ok { 31 31 return 0, zero, &MalformedPackEntryError{Offset: record.offset, Reason: "encode object header"} 32 32 }
+2 -2
packfile/ingest/hash.go
··· 3 3 import ( 4 4 "fmt" 5 5 6 - "codeberg.org/lindenii/furgit/object/header" 6 + "codeberg.org/lindenii/furgit/objectheader" 7 7 "codeberg.org/lindenii/furgit/objectid" 8 8 "codeberg.org/lindenii/furgit/objecttype" 9 9 ) 10 10 11 11 // hashCanonicalObject hashes canonical object bytes (header+content). 12 12 func hashCanonicalObject(algo objectid.Algorithm, ty objecttype.Type, content []byte) (objectid.ObjectID, error) { 13 - header, ok := header.Encode(ty, int64(len(content))) 13 + header, ok := objectheader.Encode(ty, int64(len(content))) 14 14 if !ok { 15 15 return objectid.ObjectID{}, fmt.Errorf("packfile/ingest: encode object header for type %d", ty) 16 16 }