Fast implementation of Git in pure Go

repository: Delete passthrough convenience functions

runxiyu.tngl.sh dfb3834a 235a7070

verified
+3 -170
-43
repository/read_stored_passthrough.go
··· 1 - package repository 2 - 3 - import ( 4 - "io" 5 - 6 - "codeberg.org/lindenii/furgit/objectid" 7 - "codeberg.org/lindenii/furgit/objecttype" 8 - ) 9 - 10 - // ReadStoredHeader reads an object's type and declared content length. 11 - func (repo *Repository) ReadStoredHeader(id objectid.ObjectID) (objecttype.Type, int64, error) { 12 - return repo.objects.ReadHeader(id) 13 - } 14 - 15 - // ReadStoredSize reads an object's declared content length. 16 - func (repo *Repository) ReadStoredSize(id objectid.ObjectID) (int64, error) { 17 - return repo.objects.ReadSize(id) 18 - } 19 - 20 - // ReadStoredBytesFull reads a full serialized object as "type size\0content". 21 - func (repo *Repository) ReadStoredBytesFull(id objectid.ObjectID) ([]byte, error) { 22 - return repo.objects.ReadBytesFull(id) 23 - } 24 - 25 - // ReadStoredBytesContent reads an object's type and content bytes. 26 - func (repo *Repository) ReadStoredBytesContent(id objectid.ObjectID) (objecttype.Type, []byte, error) { 27 - return repo.objects.ReadBytesContent(id) 28 - } 29 - 30 - // ReadStoredReaderFull reads a full serialized object stream. 31 - // 32 - // Caller must close the returned reader. 33 - func (repo *Repository) ReadStoredReaderFull(id objectid.ObjectID) (io.ReadCloser, error) { 34 - return repo.objects.ReadReaderFull(id) 35 - } 36 - 37 - // ReadStoredReaderContent reads an object's type, declared content length, and 38 - // content stream. 39 - // 40 - // Caller must close the returned reader. 41 - func (repo *Repository) ReadStoredReaderContent(id objectid.ObjectID) (objecttype.Type, int64, io.ReadCloser, error) { 42 - return repo.objects.ReadReaderContent(id) 43 - }
-124
repository/read_stored_passthrough_test.go
··· 1 - package repository_test 2 - 3 - import ( 4 - "bytes" 5 - "io" 6 - "os" 7 - "testing" 8 - 9 - "codeberg.org/lindenii/furgit/internal/testgit" 10 - "codeberg.org/lindenii/furgit/objectid" 11 - "codeberg.org/lindenii/furgit/objecttype" 12 - "codeberg.org/lindenii/furgit/repository" 13 - ) 14 - 15 - func TestReadStoredPassThroughs(t *testing.T) { 16 - t.Parallel() 17 - 18 - testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper 19 - repoHarness := testgit.NewRepo(t, testgit.RepoOptions{ 20 - ObjectFormat: algo, 21 - Bare: true, 22 - RefFormat: "files", 23 - }) 24 - 25 - _, _, commitID := repoHarness.MakeCommit(t, "pass-through") 26 - 27 - root, err := os.OpenRoot(repoHarness.Dir()) 28 - if err != nil { 29 - t.Fatalf("os.OpenRoot: %v", err) 30 - } 31 - 32 - defer func() { _ = root.Close() }() 33 - 34 - repo, err := repository.Open(root) 35 - if err != nil { 36 - t.Fatalf("repository.Open: %v", err) 37 - } 38 - 39 - defer func() { _ = repo.Close() }() 40 - 41 - headerTy, headerSize, err := repo.ReadStoredHeader(commitID) 42 - if err != nil { 43 - t.Fatalf("ReadStoredHeader: %v", err) 44 - } 45 - 46 - if headerTy != objecttype.TypeCommit { 47 - t.Fatalf("ReadStoredHeader type = %v, want %v", headerTy, objecttype.TypeCommit) 48 - } 49 - 50 - if headerSize <= 0 { 51 - t.Fatalf("ReadStoredHeader size = %d, want > 0", headerSize) 52 - } 53 - 54 - full, err := repo.ReadStoredBytesFull(commitID) 55 - if err != nil { 56 - t.Fatalf("ReadStoredBytesFull: %v", err) 57 - } 58 - 59 - if len(full) == 0 { 60 - t.Fatalf("ReadStoredBytesFull returned empty payload") 61 - } 62 - 63 - contentTy, content, err := repo.ReadStoredBytesContent(commitID) 64 - if err != nil { 65 - t.Fatalf("ReadStoredBytesContent: %v", err) 66 - } 67 - 68 - if contentTy != objecttype.TypeCommit { 69 - t.Fatalf("ReadStoredBytesContent type = %v, want %v", contentTy, objecttype.TypeCommit) 70 - } 71 - 72 - if len(content) == 0 { 73 - t.Fatalf("ReadStoredBytesContent returned empty content") 74 - } 75 - 76 - fullReader, err := repo.ReadStoredReaderFull(commitID) 77 - if err != nil { 78 - t.Fatalf("ReadStoredReaderFull: %v", err) 79 - } 80 - 81 - fullReaderBytes, readErr := io.ReadAll(fullReader) 82 - closeErr := fullReader.Close() 83 - 84 - if readErr != nil { 85 - t.Fatalf("ReadStoredReaderFull read: %v", readErr) 86 - } 87 - 88 - if closeErr != nil { 89 - t.Fatalf("ReadStoredReaderFull close: %v", closeErr) 90 - } 91 - 92 - if !bytes.Equal(fullReaderBytes, full) { 93 - t.Fatalf("ReadStoredReaderFull bytes mismatch against ReadStoredBytesFull") 94 - } 95 - 96 - readerTy, readerSize, contentReader, err := repo.ReadStoredReaderContent(commitID) 97 - if err != nil { 98 - t.Fatalf("ReadStoredReaderContent: %v", err) 99 - } 100 - 101 - if readerTy != objecttype.TypeCommit { 102 - t.Fatalf("ReadStoredReaderContent type = %v, want %v", readerTy, objecttype.TypeCommit) 103 - } 104 - 105 - if readerSize != int64(len(content)) { 106 - t.Fatalf("ReadStoredReaderContent size = %d, want %d", readerSize, len(content)) 107 - } 108 - 109 - readerContentBytes, readErr := io.ReadAll(contentReader) 110 - closeErr = contentReader.Close() 111 - 112 - if readErr != nil { 113 - t.Fatalf("ReadStoredReaderContent read: %v", readErr) 114 - } 115 - 116 - if closeErr != nil { 117 - t.Fatalf("ReadStoredReaderContent close: %v", closeErr) 118 - } 119 - 120 - if !bytes.Equal(readerContentBytes, content) { 121 - t.Fatalf("ReadStoredReaderContent bytes mismatch against ReadStoredBytesContent") 122 - } 123 - }) 124 - }
+1 -1
repository/traversal_helpers_test.go
··· 21 21 id := frame.id 22 22 23 23 if !frame.isTree { 24 - _, err := repo.ReadStoredSize(id) 24 + _, err := repo.Objects().ReadSize(id) 25 25 if err != nil { 26 26 return 0, err 27 27 }
+2 -2
repository/write_loose_test.go
··· 47 47 t.Fatalf("WriteLooseBytesContent id = %s, want %s", gotID, wantID) 48 48 } 49 49 50 - ty, gotContent, err := repo.ReadStoredBytesContent(gotID) 50 + ty, gotContent, err := repo.Objects().ReadBytesContent(gotID) 51 51 if err != nil { 52 52 t.Fatalf("ReadStoredBytesContent: %v", err) 53 53 } ··· 125 125 126 126 defer func() { _ = repo.Close() }() 127 127 128 - raw, err := repo.ReadStoredBytesFull(commitID) 128 + raw, err := repo.Objects().ReadBytesFull(commitID) 129 129 if err != nil { 130 130 t.Fatalf("ReadStoredBytesFull: %v", err) 131 131 }