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:
authorGitLab Bot <gitlab-bot@gitlab.com>2024-01-11 10:05:24 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2024-01-11 10:05:24 +0300
commit7266ae482ea8dd634a39d3607fbb9b8647b63f3e (patch)
tree73edfda7212e3b2c6f369fdad59e34ca7b15e5e0
parent3cef841313043732f7003229d6cfda487ad43d79 (diff)
parente723389f79dea270432590bbb1cb68a5f8df5b87 (diff)
Automatic merge of gitlab-org/gitaly master
-rw-r--r--internal/gitaly/storage/storagemgr/testhelper_test.go76
-rw-r--r--internal/gitaly/storage/storagemgr/transaction_manager_alternate_test.go126
-rw-r--r--internal/gitaly/storage/storagemgr/transaction_manager_default_branch_test.go44
-rw-r--r--internal/gitaly/storage/storagemgr/transaction_manager_hook_test.go36
-rw-r--r--internal/gitaly/storage/storagemgr/transaction_manager_housekeeping_test.go320
-rw-r--r--internal/gitaly/storage/storagemgr/transaction_manager_refs_test.go158
-rw-r--r--internal/gitaly/storage/storagemgr/transaction_manager_repo_test.go44
-rw-r--r--internal/gitaly/storage/storagemgr/transaction_manager_test.go72
8 files changed, 499 insertions, 377 deletions
diff --git a/internal/gitaly/storage/storagemgr/testhelper_test.go b/internal/gitaly/storage/storagemgr/testhelper_test.go
index 73b2cdd71..214e8783e 100644
--- a/internal/gitaly/storage/storagemgr/testhelper_test.go
+++ b/internal/gitaly/storage/storagemgr/testhelper_test.go
@@ -42,23 +42,21 @@ func TestMain(m *testing.M) {
type RepositoryState struct {
// DefaultBranch is the expected refname that HEAD points to.
DefaultBranch git.ReferenceName
- // References are references expected to exist.
- References []git.Reference
// CustomHooks is the expected state of the custom hooks.
CustomHooks testhelper.DirectoryState
// Objects are the objects that are expected to exist.
Objects []git.ObjectID
// Alternate is the content of 'objects/info/alternates'.
Alternate string
- // PackedRefs is the expected state of the packed-refs and loose references.
- PackedRefs *PackedRefsState
+ // References is the references that should exist, including ones in the packed-refs file and loose references.
+ References *ReferencesState
}
-// PackedRefsState describes the asserted state of packed-refs and loose references. It's mostly used for verifying
+// ReferencesState describes the asserted state of packed-refs and loose references. It's mostly used for verifying
// pack-refs housekeeping task.
-type PackedRefsState struct {
- // PackedRefsContent is the content of pack-refs file, line by line
- PackedRefsContent []string
+type ReferencesState struct {
+ // PackedReferences is the content of pack-refs file, line by line
+ PackedReferences map[git.ReferenceName]git.ObjectID
// LooseReferences is the exact list of loose references outside packed-refs.
LooseReferences map[git.ReferenceName]git.ObjectID
}
@@ -73,11 +71,27 @@ func RequireRepositoryState(tb testing.TB, ctx context.Context, cfg config.Cfg,
headReference, err := repo.HeadReference(ctx)
require.NoError(tb, err)
- actualReferences, err := repo.GetReferences(ctx)
+ actualReferencesState, err := collectReferencesState(tb, expected, repoPath)
require.NoError(tb, err)
- actualPackedRefsState, err := collectPackedRefsState(tb, expected, repoPath)
+ // Verify if the combination of packed-refs and loose refs match the point of view of Git.
+ referencesFromFile := map[git.ReferenceName]git.ObjectID{}
+ if actualReferencesState != nil {
+ for name, oid := range actualReferencesState.PackedReferences {
+ referencesFromFile[name] = oid
+ }
+ for name, oid := range actualReferencesState.LooseReferences {
+ referencesFromFile[name] = oid
+ }
+ }
+
+ actualGitReferences := map[git.ReferenceName]git.ObjectID{}
+ gitReferences, err := repo.GetReferences(ctx)
require.NoError(tb, err)
+ for _, ref := range gitReferences {
+ actualGitReferences[ref.Name] = git.ObjectID(ref.Target)
+ }
+ require.Equalf(tb, referencesFromFile, actualGitReferences, "references perceived by Git don't match the ones in loose reference and packed-refs file")
// Assert if there is any empty directory in the refs hierarchy excepts for heads and tags
rootRefsDir := filepath.Join(repoPath, "refs")
@@ -121,24 +135,22 @@ func RequireRepositoryState(tb testing.TB, ctx context.Context, cfg config.Cfg,
require.Equal(tb,
RepositoryState{
DefaultBranch: expected.DefaultBranch,
- References: expected.References,
Objects: expectedObjects,
Alternate: expected.Alternate,
- PackedRefs: expected.PackedRefs,
+ References: expected.References,
},
RepositoryState{
DefaultBranch: headReference,
- References: actualReferences,
Objects: actualObjects,
Alternate: string(alternate),
- PackedRefs: actualPackedRefsState,
+ References: actualReferencesState,
},
)
testhelper.RequireDirectoryState(tb, filepath.Join(repoPath, repoutil.CustomHooksDir), "", expected.CustomHooks)
}
-func collectPackedRefsState(tb testing.TB, expected RepositoryState, repoPath string) (*PackedRefsState, error) {
- if expected.PackedRefs == nil {
+func collectReferencesState(tb testing.TB, expected RepositoryState, repoPath string) (*ReferencesState, error) {
+ if expected.References == nil {
return nil, nil
}
@@ -149,6 +161,32 @@ func collectPackedRefsState(tb testing.TB, expected RepositoryState, repoPath st
} else {
require.NoError(tb, err)
}
+
+ // Parse packed-refs file
+ var packedReferences map[git.ReferenceName]git.ObjectID
+ if len(packRefsFile) != 0 {
+ packedReferences = make(map[git.ReferenceName]git.ObjectID)
+ lines := strings.Split(string(packRefsFile), "\n")
+ require.Equalf(tb, strings.TrimSpace(lines[0]), "# pack-refs with: peeled fully-peeled sorted", "invalid packed-refs header")
+ lines = lines[1:]
+ for _, line := range lines {
+ line = strings.TrimSpace(line)
+
+ if len(line) == 0 {
+ continue
+ }
+
+ // We don't care about the peeled object ID.
+ if strings.HasPrefix(line, "^") {
+ continue
+ }
+
+ parts := strings.Split(line, " ")
+ require.Equalf(tb, 2, len(parts), "invalid packed-refs format: %q", line)
+ packedReferences[git.ReferenceName(parts[1])] = git.ObjectID(parts[0])
+ }
+ }
+
// Walk and collect loose refs.
looseReferences := map[git.ReferenceName]git.ObjectID{}
refsPath := filepath.Join(repoPath, "refs")
@@ -169,9 +207,9 @@ func collectPackedRefsState(tb testing.TB, expected RepositoryState, repoPath st
return nil
}))
- return &PackedRefsState{
- PackedRefsContent: strings.Split(strings.TrimSpace(string(packRefsFile)), "\n"),
- LooseReferences: looseReferences,
+ return &ReferencesState{
+ PackedReferences: packedReferences,
+ LooseReferences: looseReferences,
}, nil
}
diff --git a/internal/gitaly/storage/storagemgr/transaction_manager_alternate_test.go b/internal/gitaly/storage/storagemgr/transaction_manager_alternate_test.go
index 4583e5e63..c709e57b2 100644
--- a/internal/gitaly/storage/storagemgr/transaction_manager_alternate_test.go
+++ b/internal/gitaly/storage/storagemgr/transaction_manager_alternate_test.go
@@ -56,8 +56,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"pool": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -134,8 +136,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"pool": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -225,8 +229,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"pool": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -779,8 +785,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"pool": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -788,8 +796,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
},
"member": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -864,8 +874,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"pool": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -873,8 +885,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
},
"member": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -956,8 +970,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
Repositories: RepositoryStates{
"pool": {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -984,8 +1000,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"pool": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1094,8 +1112,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
Repositories: RepositoryStates{
"repository-1": {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1113,8 +1133,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
"repository-2": {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/branch", Target: setup.Commits.Third.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch": setup.Commits.Third.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1145,8 +1167,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"repository-1": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1164,8 +1188,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
"repository-2": {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/branch", Target: setup.Commits.Third.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch": setup.Commits.Third.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1267,8 +1293,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
Repositories: RepositoryStates{
"pool": {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1277,8 +1305,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
"member": {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/branch", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch": setup.Commits.Second.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1299,8 +1329,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"pool": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1309,8 +1341,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
"member": {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/branch", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch": setup.Commits.Second.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1399,8 +1433,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
Repositories: RepositoryStates{
"pool": {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1409,8 +1445,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
"member": {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/branch", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch": setup.Commits.Second.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1431,8 +1469,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
Repositories: RepositoryStates{
"pool": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1441,8 +1481,10 @@ func generateAlternateTests(t *testing.T, setup testTransactionSetup) []transact
},
"member": {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/branch", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch": setup.Commits.Second.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
diff --git a/internal/gitaly/storage/storagemgr/transaction_manager_default_branch_test.go b/internal/gitaly/storage/storagemgr/transaction_manager_default_branch_test.go
index 200877c9a..e77094fbf 100644
--- a/internal/gitaly/storage/storagemgr/transaction_manager_default_branch_test.go
+++ b/internal/gitaly/storage/storagemgr/transaction_manager_default_branch_test.go
@@ -42,9 +42,11 @@ func generateDefaultBranchTests(t *testing.T, setup testTransactionSetup) []tran
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/branch2",
- References: []git.Reference{
- {Name: "refs/heads/branch2", Target: setup.Commits.First.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch2": setup.Commits.First.OID,
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
},
},
@@ -87,9 +89,11 @@ func generateDefaultBranchTests(t *testing.T, setup testTransactionSetup) []tran
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/branch2",
- References: []git.Reference{
- {Name: "refs/heads/branch2", Target: setup.Commits.First.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch2": setup.Commits.First.OID,
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
},
},
},
@@ -138,7 +142,11 @@ func generateDefaultBranchTests(t *testing.T, setup testTransactionSetup) []tran
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/non-existent",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -195,8 +203,10 @@ func generateDefaultBranchTests(t *testing.T, setup testTransactionSetup) []tran
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/branch2",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
},
},
@@ -239,9 +249,11 @@ func generateDefaultBranchTests(t *testing.T, setup testTransactionSetup) []tran
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/branch2",
- References: []git.Reference{
- {Name: "refs/heads/branch2", Target: setup.Commits.First.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch2": setup.Commits.First.OID,
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
},
},
},
@@ -296,9 +308,11 @@ func generateDefaultBranchTests(t *testing.T, setup testTransactionSetup) []tran
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/branch2",
- References: []git.Reference{
- {Name: "refs/heads/branch2", Target: setup.Commits.First.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ "refs/heads/branch2": setup.Commits.First.OID,
+ },
},
},
},
diff --git a/internal/gitaly/storage/storagemgr/transaction_manager_hook_test.go b/internal/gitaly/storage/storagemgr/transaction_manager_hook_test.go
index f849f1c6f..c21df6497 100644
--- a/internal/gitaly/storage/storagemgr/transaction_manager_hook_test.go
+++ b/internal/gitaly/storage/storagemgr/transaction_manager_hook_test.go
@@ -394,7 +394,11 @@ func generateCustomHooksTests(t *testing.T, setup testTransactionSetup) []transa
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -435,7 +439,11 @@ func generateCustomHooksTests(t *testing.T, setup testTransactionSetup) []transa
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -479,7 +487,11 @@ func generateCustomHooksTests(t *testing.T, setup testTransactionSetup) []transa
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -529,7 +541,11 @@ func generateCustomHooksTests(t *testing.T, setup testTransactionSetup) []transa
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -576,7 +592,11 @@ func generateCustomHooksTests(t *testing.T, setup testTransactionSetup) []transa
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -628,7 +648,11 @@ func generateCustomHooksTests(t *testing.T, setup testTransactionSetup) []transa
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
diff --git a/internal/gitaly/storage/storagemgr/transaction_manager_housekeeping_test.go b/internal/gitaly/storage/storagemgr/transaction_manager_housekeeping_test.go
index a2b5ad5ea..ebfab1bd0 100644
--- a/internal/gitaly/storage/storagemgr/transaction_manager_housekeeping_test.go
+++ b/internal/gitaly/storage/storagemgr/transaction_manager_housekeeping_test.go
@@ -38,7 +38,7 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
lightweightTag := setup.Commits.Diverging.OID
annotatedTag := setup.AnnotatedTags[0]
- directoryStateWithPackedRefs := func(lsn LSN) testhelper.DirectoryState {
+ directoryStateWithReferences := func(lsn LSN) testhelper.DirectoryState {
return testhelper.DirectoryState{
"/": {Mode: fs.ModeDir | perm.PrivateDir},
"/wal": {Mode: fs.ModeDir | perm.PrivateDir},
@@ -48,12 +48,12 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
}
}
- defaultRefs := []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: lightweightTag.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
+ defaultReferences := map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-1": setup.Commits.Second.OID,
+ "refs/heads/branch-2": setup.Commits.Third.OID,
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/tags/v1.0.0": lightweightTag,
+ "refs/tags/v2.0.0": annotatedTag.OID,
}
return []transactionTestCase{
@@ -88,29 +88,19 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(2).toProto(),
},
- Directory: directoryStateWithPackedRefs(1),
+ Directory: directoryStateWithReferences(1),
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- // `main` points to the second commit now
- {Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: lightweightTag.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-1": setup.Commits.Second.OID,
+ "refs/heads/branch-2": setup.Commits.Third.OID,
// But `main` in packed-refs file points to the first
// commit.
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()),
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/tags/v1.0.0": lightweightTag,
+ "refs/tags/v2.0.0": annotatedTag.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{
// It's shadowed by the loose reference.
@@ -172,29 +162,18 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(2).toProto(),
},
- Directory: directoryStateWithPackedRefs(2),
+ Directory: directoryStateWithReferences(2),
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/branch-3", Target: setup.Commits.Diverging.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: lightweightTag.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- // All refs are packed to the packed-refs file.
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()),
- fmt.Sprintf("%s refs/heads/branch-3", setup.Commits.Diverging.OID.String()),
- fmt.Sprintf("%s refs/heads/main", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()),
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-1": setup.Commits.Second.OID,
+ "refs/heads/branch-2": setup.Commits.Third.OID,
+ "refs/heads/branch-3": setup.Commits.Diverging.OID,
+ "refs/heads/main": setup.Commits.Second.OID,
+ "refs/tags/v1.0.0": lightweightTag,
+ "refs/tags/v2.0.0": annotatedTag.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
@@ -235,32 +214,20 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(2).toProto(),
},
- Directory: directoryStateWithPackedRefs(2),
+ Directory: directoryStateWithReferences(2),
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/keep-around/1", Target: setup.Commits.First.OID.String()},
- {Name: "refs/merge-requests/1", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: lightweightTag.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- {Name: "refs/very/deep/nested/ref", Target: setup.Commits.Third.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()),
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
- fmt.Sprintf("%s refs/keep-around/1", setup.Commits.First.OID.String()),
- fmt.Sprintf("%s refs/merge-requests/1", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()),
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
- fmt.Sprintf("%s refs/very/deep/nested/ref", setup.Commits.Third.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-1": setup.Commits.Second.OID,
+ "refs/heads/branch-2": setup.Commits.Third.OID,
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/keep-around/1": setup.Commits.First.OID,
+ "refs/merge-requests/1": setup.Commits.Second.OID,
+ "refs/tags/v1.0.0": lightweightTag,
+ "refs/tags/v2.0.0": annotatedTag.OID,
+ "refs/very/deep/nested/ref": setup.Commits.Third.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
@@ -299,28 +266,17 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(2).toProto(),
},
- Directory: directoryStateWithPackedRefs(2),
+ Directory: directoryStateWithReferences(2),
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/branch-3", Target: setup.Commits.Diverging.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/keep-around/1", Target: setup.Commits.First.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: lightweightTag.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()),
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()),
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-1": setup.Commits.Second.OID,
+ "refs/heads/branch-2": setup.Commits.Third.OID,
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/tags/v1.0.0": lightweightTag,
+ "refs/tags/v2.0.0": annotatedTag.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{
// Although ref creation commits beforehand, pack-refs
@@ -365,28 +321,17 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(2).toProto(),
},
- Directory: directoryStateWithPackedRefs(1),
+ Directory: directoryStateWithReferences(1),
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/branch-3", Target: setup.Commits.Diverging.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/keep-around/1", Target: setup.Commits.First.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: lightweightTag.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()),
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()),
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-1": setup.Commits.Second.OID,
+ "refs/heads/branch-2": setup.Commits.Third.OID,
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/tags/v1.0.0": lightweightTag,
+ "refs/tags/v2.0.0": annotatedTag.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{
// pack-refs task is unaware of these new refs. It keeps
@@ -432,26 +377,17 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(2).toProto(),
},
- Directory: directoryStateWithPackedRefs(2),
+ Directory: directoryStateWithReferences(2),
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Diverging.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: setup.Commits.First.OID.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()), // Outdated
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()), // Outdated
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()), // Outdated
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()), // Outdated
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()), // Still up-to-date
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-1": setup.Commits.Second.OID, // Outdated
+ "refs/heads/branch-2": setup.Commits.Third.OID, // Outdated
+ "refs/heads/main": setup.Commits.First.OID, // Outdated
+ "refs/tags/v1.0.0": lightweightTag, // Outdated
+ "refs/tags/v2.0.0": annotatedTag.OID, // Still up-to-date
},
LooseReferences: map[git.ReferenceName]git.ObjectID{
// Updated refs shadow the ones in the packed-refs file.
@@ -498,26 +434,17 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(2).toProto(),
},
- Directory: directoryStateWithPackedRefs(1),
+ Directory: directoryStateWithReferences(1),
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Diverging.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: setup.Commits.First.OID.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()), // Outdated
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()), // Outdated
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()), // Outdated
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()), // Outdated
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-1": setup.Commits.Second.OID, // Outdated
+ "refs/heads/branch-2": setup.Commits.Third.OID, // Outdated
+ "refs/heads/main": setup.Commits.First.OID, // Outdated
+ "refs/tags/v1.0.0": lightweightTag, // Outdated
+ "refs/tags/v2.0.0": annotatedTag.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{
"refs/heads/main": setup.Commits.Second.OID,
@@ -565,15 +492,10 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
+ References: &ReferencesState{
// Empty packed-refs. It means the pack-refs task is not
// executed.
- PackedRefsContent: []string{""},
+ PackedReferences: nil,
// Deleted refs went away.
LooseReferences: map[git.ReferenceName]git.ObjectID{
"refs/heads/branch-2": setup.Commits.Third.OID,
@@ -627,14 +549,7 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Repositories: RepositoryStates{
relativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/tags/v1.0.0", Target: lightweightTag.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{""},
+ References: &ReferencesState{
LooseReferences: map[git.ReferenceName]git.ObjectID{
"refs/heads/branch-1": setup.Commits.Second.OID,
"refs/heads/branch-2": setup.Commits.Third.OID,
@@ -722,13 +637,9 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
setup.Commits.First.OID,
},
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
@@ -790,22 +701,15 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(2).toProto(),
},
- Directory: directoryStateWithPackedRefs(1),
+ Directory: directoryStateWithReferences(1),
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-2", Target: setup.Commits.Third.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/tags/v2.0.0", Target: annotatedTag.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()),
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch-2": setup.Commits.Third.OID,
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/tags/v2.0.0": annotatedTag.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
@@ -876,13 +780,9 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Repositories: RepositoryStates{
relativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/empty-dir/parent/main", Target: setup.Commits.First.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/empty-dir/parent/main", setup.Commits.First.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/empty-dir/parent/main": setup.Commits.First.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
@@ -908,7 +808,9 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Repositories: RepositoryStates{
relativePath: {
DefaultBranch: "refs/heads/main",
- References: defaultRefs,
+ References: &ReferencesState{
+ LooseReferences: defaultReferences,
+ },
},
},
},
@@ -933,7 +835,9 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Repositories: RepositoryStates{
relativePath: {
DefaultBranch: "refs/heads/main",
- References: defaultRefs,
+ References: &ReferencesState{
+ LooseReferences: defaultReferences,
+ },
},
},
},
@@ -969,22 +873,13 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Database: DatabaseState{
string(keyAppliedLSN(setup.PartitionID)): LSN(1).toProto(),
},
- Directory: directoryStateWithPackedRefs(1),
+ Directory: directoryStateWithReferences(1),
Repositories: RepositoryStates{
relativePath: {
DefaultBranch: "refs/heads/main",
- References: defaultRefs,
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()),
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()),
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
- },
- LooseReferences: map[git.ReferenceName]git.ObjectID{},
+ References: &ReferencesState{
+ PackedReferences: defaultReferences,
+ LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
},
},
@@ -1055,13 +950,9 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
setup.Commits.First.OID,
},
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- },
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
+ References: &ReferencesState{
+ PackedReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
},
LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
@@ -1136,18 +1027,9 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Repositories: RepositoryStates{
relativePath: {
DefaultBranch: "refs/heads/main",
- References: defaultRefs,
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{
- "# pack-refs with: peeled fully-peeled sorted ",
- fmt.Sprintf("%s refs/heads/branch-1", setup.Commits.Second.OID.String()),
- fmt.Sprintf("%s refs/heads/branch-2", setup.Commits.Third.OID.String()),
- fmt.Sprintf("%s refs/heads/main", setup.Commits.First.OID.String()),
- fmt.Sprintf("%s refs/tags/v1.0.0", lightweightTag.String()),
- fmt.Sprintf("%s refs/tags/v2.0.0", annotatedTag.OID.String()),
- fmt.Sprintf("^%s", setup.Commits.Diverging.OID.String()),
- },
- LooseReferences: map[git.ReferenceName]git.ObjectID{},
+ References: &ReferencesState{
+ PackedReferences: defaultReferences,
+ LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
},
},
@@ -1200,10 +1082,8 @@ func generateHousekeepingTests(t *testing.T, ctx context.Context, testPartitionI
Repositories: RepositoryStates{
relativePath: {
DefaultBranch: "refs/heads/main",
- References: nil,
- PackedRefs: &PackedRefsState{
- PackedRefsContent: []string{""},
- LooseReferences: map[git.ReferenceName]git.ObjectID{},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{},
},
Objects: []git.ObjectID{},
},
diff --git a/internal/gitaly/storage/storagemgr/transaction_manager_refs_test.go b/internal/gitaly/storage/storagemgr/transaction_manager_refs_test.go
index 4749bba26..915aadc30 100644
--- a/internal/gitaly/storage/storagemgr/transaction_manager_refs_test.go
+++ b/internal/gitaly/storage/storagemgr/transaction_manager_refs_test.go
@@ -72,7 +72,11 @@ func generateInvalidReferencesTests(t *testing.T, setup testTransactionSetup) []
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: commit.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": commit.OID,
+ },
+ },
},
},
},
@@ -178,7 +182,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -208,7 +216,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -345,7 +357,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/parent", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/parent": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -426,7 +442,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/parent/child", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/parent/child": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -488,7 +508,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/parent/child", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/parent/child": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -533,7 +557,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/tags/v1.0.0", Target: setup.ObjectHash.EmptyTreeOID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/tags/v1.0.0": setup.ObjectHash.EmptyTreeOID,
+ },
+ },
},
},
},
@@ -591,9 +619,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/heads/non-conflicting", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/heads/non-conflicting": setup.Commits.Second.OID,
+ },
},
},
},
@@ -638,7 +668,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -681,7 +715,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -719,7 +757,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -760,9 +802,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/heads/non-conflicting", Target: setup.Commits.Third.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/heads/non-conflicting": setup.Commits.Third.OID,
+ },
},
},
},
@@ -808,9 +852,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/heads/non-conflicting", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/heads/non-conflicting": setup.Commits.First.OID,
+ },
},
},
},
@@ -868,7 +914,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -970,8 +1020,10 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
},
},
@@ -1016,11 +1068,13 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- // The symbolic reference should be converted to a normal reference if it is
- // updated.
- {Name: "refs/heads/symbolic", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ // The symbolic reference should be converted to a normal reference if it is
+ // updated.
+ "refs/heads/symbolic": setup.Commits.Second.OID,
+ },
},
},
},
@@ -1062,7 +1116,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -1107,9 +1165,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
- {Name: "refs/heads/non-conflicting", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/heads/non-conflicting": setup.Commits.First.OID,
+ },
},
},
},
@@ -1178,7 +1238,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -1257,7 +1321,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -1304,7 +1372,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -1351,7 +1423,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.Second.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Second.OID,
+ },
+ },
},
},
},
@@ -1403,7 +1479,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -1433,7 +1513,11 @@ func generateModifyReferencesTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
setup.RelativePath: {
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
diff --git a/internal/gitaly/storage/storagemgr/transaction_manager_repo_test.go b/internal/gitaly/storage/storagemgr/transaction_manager_repo_test.go
index a28c3241b..cd5448748 100644
--- a/internal/gitaly/storage/storagemgr/transaction_manager_repo_test.go
+++ b/internal/gitaly/storage/storagemgr/transaction_manager_repo_test.go
@@ -114,9 +114,11 @@ func generateCreateRepositoryTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/branch", Target: setup.Commits.Second.OID.String()},
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/heads/branch": setup.Commits.Second.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -193,8 +195,10 @@ func generateCreateRepositoryTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -248,8 +252,10 @@ func generateCreateRepositoryTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/other",
- References: []git.Reference{
- {Name: "refs/heads/other", Target: setup.Commits.Second.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/other": setup.Commits.Second.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -359,8 +365,10 @@ func generateCreateRepositoryTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
CustomHooks: testhelper.DirectoryState{
"/": {Mode: umask.Mask(fs.ModeDir | perm.PrivateDir)},
@@ -439,8 +447,10 @@ func generateCreateRepositoryTests(t *testing.T, setup testTransactionSetup) []t
},
Repositories: RepositoryStates{
"repository-1": {
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -458,8 +468,10 @@ func generateCreateRepositoryTests(t *testing.T, setup testTransactionSetup) []t
},
"repository-2": {
DefaultBranch: "refs/heads/branch",
- References: []git.Reference{
- {Name: "refs/heads/branch", Target: setup.Commits.Third.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/branch": setup.Commits.Third.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -887,8 +899,10 @@ func generateDeleteRepositoryTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/new-head",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
diff --git a/internal/gitaly/storage/storagemgr/transaction_manager_test.go b/internal/gitaly/storage/storagemgr/transaction_manager_test.go
index 3383e289c..2e5e2b8b8 100644
--- a/internal/gitaly/storage/storagemgr/transaction_manager_test.go
+++ b/internal/gitaly/storage/storagemgr/transaction_manager_test.go
@@ -358,7 +358,11 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
},
},
},
@@ -502,8 +506,10 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -573,8 +579,10 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.Third.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Third.OID,
+ },
},
CustomHooks: testhelper.DirectoryState{
"/": {Mode: fs.ModeDir | perm.PrivateDir},
@@ -635,8 +643,10 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -747,8 +757,10 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.Third.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.Third.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -810,8 +822,10 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -899,8 +913,10 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1444,8 +1460,10 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/new-head",
- References: []git.Reference{
- {Name: "refs/heads/main", Target: setup.Commits.First.OID.String()},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
},
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
@@ -1491,7 +1509,11 @@ func generateCommonTests(t *testing.T, ctx context.Context, setup testTransactio
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/new-head",
- References: []git.Reference{{Name: "refs/heads/main", Target: setup.Commits.First.OID.String()}},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ },
+ },
Objects: []git.ObjectID{
setup.ObjectHash.EmptyTreeOID,
setup.Commits.First.OID,
@@ -1616,9 +1638,11 @@ func generateCommittedEntriesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: string(setup.Commits.First.OID)},
- {Name: "refs/heads/main", Target: string(setup.Commits.First.OID)},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/heads/branch-1": setup.Commits.First.OID,
+ },
},
},
},
@@ -1725,10 +1749,12 @@ func generateCommittedEntriesTests(t *testing.T, setup testTransactionSetup) []t
Repositories: RepositoryStates{
setup.RelativePath: {
DefaultBranch: "refs/heads/main",
- References: []git.Reference{
- {Name: "refs/heads/branch-1", Target: string(setup.Commits.First.OID)},
- {Name: "refs/heads/branch-2", Target: string(setup.Commits.First.OID)},
- {Name: "refs/heads/main", Target: string(setup.Commits.First.OID)},
+ References: &ReferencesState{
+ LooseReferences: map[git.ReferenceName]git.ObjectID{
+ "refs/heads/main": setup.Commits.First.OID,
+ "refs/heads/branch-1": setup.Commits.First.OID,
+ "refs/heads/branch-2": setup.Commits.First.OID,
+ },
},
},
},