diff options
author | John Cai <jcai@gitlab.com> | 2023-04-06 21:55:07 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2023-05-11 22:08:51 +0300 |
commit | ec2371500e607fc28cf4fcf49f1797c36dee557f (patch) | |
tree | 07108259b8e6cef21f984b46f14c4893d95137b4 | |
parent | f50a7fe08903948118f49c10e7811f8a40e2ecca (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 a95e41273..9238ae7a8 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 3582cadfa..908d321e8 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 c2bb1f897..89981fa38 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 f5daad03c..ba249bcde 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, |