Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Cai <jcai@gitlab.com>2023-04-06 21:55:07 +0300
committerJohn Cai <jcai@gitlab.com>2023-04-06 22:37:10 +0300
commit39f5af6b7131883bb647a72e3ed59a879f6bf539 (patch)
treef7c0be9245b7bd1480a7875c9dd3da4bf22432c7
parentc31b9fed97bb01a1790496386ceab8e31e76b1d8 (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.go6
-rw-r--r--internal/git/localrepo/tree.go2
-rw-r--r--internal/git/localrepo/tree_test.go12
-rw-r--r--internal/gitaly/service/operations/submodules.go6
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,