diff options
author | John Cai <jcai@gitlab.com> | 2023-04-06 21:55:07 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2023-04-06 22:37:10 +0300 |
commit | 39f5af6b7131883bb647a72e3ed59a879f6bf539 (patch) | |
tree | f7c0be9245b7bd1480a7875c9dd3da4bf22432c7 | |
parent | c31b9fed97bb01a1790496386ceab8e31e76b1d8 (diff) |
localrepo: Use slice of *TreeEntry instead of TreeEntry in WriteTree
Dealing with TreeEntry pointers is more convenient, since in a future
commit we will start to modify TreeEntry objects in place for various
operations. ListEntries() already returns a slice of TreeEntry pointers.
Change WriteTree to take a slice of TreeEntry pointers for the sake of
consistency.
-rw-r--r-- | internal/git/localrepo/commit_test.go | 6 | ||||
-rw-r--r-- | internal/git/localrepo/tree.go | 2 | ||||
-rw-r--r-- | internal/git/localrepo/tree_test.go | 12 | ||||
-rw-r--r-- | internal/gitaly/service/operations/submodules.go | 6 |
4 files changed, 13 insertions, 13 deletions
diff --git a/internal/git/localrepo/commit_test.go b/internal/git/localrepo/commit_test.go index c089c1db7..548e83287 100644 --- a/internal/git/localrepo/commit_test.go +++ b/internal/git/localrepo/commit_test.go @@ -32,10 +32,10 @@ func TestWriteCommit(t *testing.T) { require.NoError(t, err) treeEntryA := TreeEntry{Path: "file", Mode: "100644", OID: blobID} - treeA, err := repo.WriteTree(ctx, []TreeEntry{treeEntryA}) + treeA, err := repo.WriteTree(ctx, []*TreeEntry{&treeEntryA}) require.NoError(t, err) - treeB, err := repo.WriteTree(ctx, []TreeEntry{ + treeB, err := repo.WriteTree(ctx, []*TreeEntry{ {Path: "file", Mode: "100644", OID: changedBlobID}, }) require.NoError(t, err) @@ -203,7 +203,7 @@ func TestWriteCommit_validation(t *testing.T) { blobID, err := repo.WriteBlob(ctx, "", strings.NewReader("foo")) require.NoError(t, err) - treeID, err := repo.WriteTree(ctx, []TreeEntry{ + treeID, err := repo.WriteTree(ctx, []*TreeEntry{ { OID: blobID, Mode: "100644", diff --git a/internal/git/localrepo/tree.go b/internal/git/localrepo/tree.go index cfb1e722d..1e21ed423 100644 --- a/internal/git/localrepo/tree.go +++ b/internal/git/localrepo/tree.go @@ -84,7 +84,7 @@ func (t *TreeEntry) IsBlob() bool { // WriteTree writes a new tree object to the given path. This function does not verify whether OIDs // referred to by tree entries actually exist in the repository. -func (repo *Repo) WriteTree(ctx context.Context, entries []TreeEntry) (git.ObjectID, error) { +func (repo *Repo) WriteTree(ctx context.Context, entries []*TreeEntry) (git.ObjectID, error) { var tree bytes.Buffer for _, entry := range entries { entryType := entry.Type diff --git a/internal/git/localrepo/tree_test.go b/internal/git/localrepo/tree_test.go index 2aac6d8ea..f74e5a3c7 100644 --- a/internal/git/localrepo/tree_test.go +++ b/internal/git/localrepo/tree_test.go @@ -28,7 +28,7 @@ func TestWriteTree(t *testing.T) { blobID, err := repo.WriteBlob(ctx, "file", bytes.NewBufferString("foobar\n")) require.NoError(t, err) - treeID, err := repo.WriteTree(ctx, []TreeEntry{ + treeID, err := repo.WriteTree(ctx, []*TreeEntry{ { OID: blobID, Mode: "100644", @@ -45,12 +45,12 @@ func TestWriteTree(t *testing.T) { for _, tc := range []struct { desc string - entries []TreeEntry + entries []*TreeEntry expectedEntries []TreeEntry }{ { desc: "entry with blob OID", - entries: []TreeEntry{ + entries: []*TreeEntry{ { OID: blobID, Mode: "100644", @@ -67,7 +67,7 @@ func TestWriteTree(t *testing.T) { }, { desc: "entry with tree OID", - entries: []TreeEntry{ + entries: []*TreeEntry{ { OID: treeID, Mode: "040000", @@ -84,7 +84,7 @@ func TestWriteTree(t *testing.T) { }, { desc: "mixed tree and blob entries", - entries: []TreeEntry{ + entries: []*TreeEntry{ { OID: treeID, Mode: "040000", @@ -121,7 +121,7 @@ func TestWriteTree(t *testing.T) { }, { desc: "entry with nonexistent object", - entries: []TreeEntry{ + entries: []*TreeEntry{ { OID: nonExistentBlobID, Mode: "100644", diff --git a/internal/gitaly/service/operations/submodules.go b/internal/gitaly/service/operations/submodules.go index 1162a8f8a..7a96194ef 100644 --- a/internal/gitaly/service/operations/submodules.go +++ b/internal/gitaly/service/operations/submodules.go @@ -86,14 +86,14 @@ func (s *Server) updateSubmodule(ctx context.Context, quarantineRepo *localrepo. return "", fmt.Errorf("error reading tree: %w", err) } - var newEntries []localrepo.TreeEntry + var newEntries []*localrepo.TreeEntry var newTreeID git.ObjectID for _, entry := range entries { // If the entry's path does not match, then we simply // want to retain this tree entry. if entry.Path != base { - newEntries = append(newEntries, *entry) + newEntries = append(newEntries, entry) continue } @@ -119,7 +119,7 @@ func (s *Server) updateSubmodule(ctx context.Context, quarantineRepo *localrepo. // Otherwise, create a new tree entry submoduleFound = true - newEntries = append(newEntries, localrepo.TreeEntry{ + newEntries = append(newEntries, &localrepo.TreeEntry{ Mode: entry.Mode, Path: entry.Path, OID: replaceWith, |