aboutsummaryrefslogtreecommitdiff
path: root/reachability
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-25 14:49:17 +0000
committerGravatar Runxi Yu2026-03-25 15:02:22 +0000
commit7847657e0820af98120031f719b8ede635ad8c07 (patch)
tree8c4439c78f72f1382edc809b49be33115847b6e7 /reachability
parentobject: Remove type.go (diff)
signatureNo signature
object: Split each object type into its own package v0.1.108
Diffstat (limited to 'reachability')
-rw-r--r--reachability/helpers.go2
-rw-r--r--reachability/reachability.go2
-rw-r--r--reachability/unit_test.go36
-rw-r--r--reachability/walk_expand_commits.go7
-rw-r--r--reachability/walk_expand_objects.go16
-rw-r--r--reachability/walk_verify.go4
6 files changed, 35 insertions, 32 deletions
diff --git a/reachability/helpers.go b/reachability/helpers.go
index 47fe313e..8d9eea6a 100644
--- a/reachability/helpers.go
+++ b/reachability/helpers.go
@@ -6,7 +6,7 @@ import (
giterrors "codeberg.org/lindenii/furgit/errors"
objectid "codeberg.org/lindenii/furgit/object/id"
- "codeberg.org/lindenii/furgit/object/storer"
+ objectstorer "codeberg.org/lindenii/furgit/object/storer"
objecttype "codeberg.org/lindenii/furgit/object/type"
)
diff --git a/reachability/reachability.go b/reachability/reachability.go
index 54fc6e44..77a844a7 100644
--- a/reachability/reachability.go
+++ b/reachability/reachability.go
@@ -3,7 +3,7 @@ package reachability
import (
commitgraphread "codeberg.org/lindenii/furgit/commitgraph/read"
- "codeberg.org/lindenii/furgit/object/storer"
+ objectstorer "codeberg.org/lindenii/furgit/object/storer"
)
// Reachability provides graph traversal over objects in one object store.
diff --git a/reachability/unit_test.go b/reachability/unit_test.go
index fad0280b..db9a5c26 100644
--- a/reachability/unit_test.go
+++ b/reachability/unit_test.go
@@ -9,9 +9,9 @@ import (
giterrors "codeberg.org/lindenii/furgit/errors"
"codeberg.org/lindenii/furgit/internal/testgit"
- "codeberg.org/lindenii/furgit/object"
objectid "codeberg.org/lindenii/furgit/object/id"
"codeberg.org/lindenii/furgit/object/storer/memory"
+ "codeberg.org/lindenii/furgit/object/tree"
objecttype "codeberg.org/lindenii/furgit/object/type"
"codeberg.org/lindenii/furgit/reachability"
)
@@ -84,8 +84,8 @@ func TestWalkDomainCommitsIncludesTagNodes(t *testing.T) {
testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper
store := newCountingMemStore(algo)
blob := store.AddObject(objecttype.TypeBlob, []byte("blob\n"))
- tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &object.Tree{Entries: []object.TreeEntry{{
- Mode: object.FileModeRegular,
+ tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &tree.Tree{Entries: []tree.TreeEntry{{
+ Mode: tree.FileModeRegular,
Name: []byte("f"),
ID: blob,
}}}))
@@ -119,8 +119,8 @@ func TestWalkExcludesHavesCompletely(t *testing.T) {
testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper
store := newCountingMemStore(algo)
blob := store.AddObject(objecttype.TypeBlob, []byte("blob\n"))
- tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &object.Tree{Entries: []object.TreeEntry{{
- Mode: object.FileModeRegular,
+ tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &tree.Tree{Entries: []tree.TreeEntry{{
+ Mode: tree.FileModeRegular,
Name: []byte("f"),
ID: blob,
}}}))
@@ -148,8 +148,8 @@ func TestWalkDomainCommitsRejectsNonCommitRootAfterPeel(t *testing.T) {
testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper
store := newCountingMemStore(algo)
blob := store.AddObject(objecttype.TypeBlob, []byte("blob\n"))
- tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &object.Tree{Entries: []object.TreeEntry{{
- Mode: object.FileModeRegular,
+ tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &tree.Tree{Entries: []tree.TreeEntry{{
+ Mode: tree.FileModeRegular,
Name: []byte("f"),
ID: blob,
}}}))
@@ -181,8 +181,8 @@ func TestWalkDomainCommitsHaveTagStopsTraversal(t *testing.T) {
testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper
store := newCountingMemStore(algo)
blob := store.AddObject(objecttype.TypeBlob, []byte("blob\n"))
- tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &object.Tree{Entries: []object.TreeEntry{{
- Mode: object.FileModeRegular,
+ tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &tree.Tree{Entries: []tree.TreeEntry{{
+ Mode: tree.FileModeRegular,
Name: []byte("f"),
ID: blob,
}}}))
@@ -224,15 +224,15 @@ func TestWalkDomainObjectsRecursesTreesAndSkipsBlobContentReads(t *testing.T) {
blob2 := store.AddObject(objecttype.TypeBlob, []byte("b2\n"))
gitlinkTarget := store.Algorithm().Sum([]byte("external-submodule"))
- subtree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &object.Tree{Entries: []object.TreeEntry{{
- Mode: object.FileModeRegular,
+ subtree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &tree.Tree{Entries: []tree.TreeEntry{{
+ Mode: tree.FileModeRegular,
Name: []byte("nested"),
ID: blob2,
}}}))
- rootTree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &object.Tree{Entries: []object.TreeEntry{
- {Mode: object.FileModeRegular, Name: []byte("a"), ID: blob1},
- {Mode: object.FileModeDir, Name: []byte("dir"), ID: subtree},
- {Mode: object.FileModeGitlink, Name: []byte("submodule"), ID: gitlinkTarget},
+ rootTree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &tree.Tree{Entries: []tree.TreeEntry{
+ {Mode: tree.FileModeRegular, Name: []byte("a"), ID: blob1},
+ {Mode: tree.FileModeDir, Name: []byte("dir"), ID: subtree},
+ {Mode: tree.FileModeGitlink, Name: []byte("submodule"), ID: gitlinkTarget},
}}))
commit := store.AddObject(objecttype.TypeCommit, commitBody(rootTree))
@@ -265,8 +265,8 @@ func TestCheckConnectedReturnsConcreteMissingObject(t *testing.T) {
testgit.ForEachAlgorithm(t, func(t *testing.T, algo objectid.Algorithm) { //nolint:thelper
store := newCountingMemStore(algo)
blob := store.AddObject(objecttype.TypeBlob, []byte("blob\n"))
- tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &object.Tree{Entries: []object.TreeEntry{{
- Mode: object.FileModeRegular,
+ tree := store.AddObject(objecttype.TypeTree, mustSerializeTree(t, &tree.Tree{Entries: []tree.TreeEntry{{
+ Mode: tree.FileModeRegular,
Name: []byte("f"),
ID: blob,
}}}))
@@ -307,7 +307,7 @@ func TestWalkInvalidDomainReturnsPlainError(t *testing.T) {
})
}
-func mustSerializeTree(tb testing.TB, tree *object.Tree) []byte {
+func mustSerializeTree(tb testing.TB, tree *tree.Tree) []byte {
tb.Helper()
body, err := tree.SerializeWithoutHeader()
diff --git a/reachability/walk_expand_commits.go b/reachability/walk_expand_commits.go
index f02da944..8cb93279 100644
--- a/reachability/walk_expand_commits.go
+++ b/reachability/walk_expand_commits.go
@@ -4,7 +4,8 @@ import (
"fmt"
"codeberg.org/lindenii/furgit/errors"
- "codeberg.org/lindenii/furgit/object"
+ objectcommit "codeberg.org/lindenii/furgit/object/commit"
+ objecttag "codeberg.org/lindenii/furgit/object/tag"
objecttype "codeberg.org/lindenii/furgit/object/type"
)
@@ -39,7 +40,7 @@ func (walk *Walk) expandCommits(item walkItem) ([]walkItem, error) {
return nil, err
}
- commit, err := object.ParseCommit(content, item.id.Algorithm())
+ commit, err := objectcommit.Parse(content, item.id.Algorithm())
if err != nil {
return nil, err
}
@@ -56,7 +57,7 @@ func (walk *Walk) expandCommits(item walkItem) ([]walkItem, error) {
return nil, err
}
- tag, err := object.ParseTag(content, item.id.Algorithm())
+ tag, err := objecttag.Parse(content, item.id.Algorithm())
if err != nil {
return nil, err
}
diff --git a/reachability/walk_expand_objects.go b/reachability/walk_expand_objects.go
index 36e21745..9c5ed439 100644
--- a/reachability/walk_expand_objects.go
+++ b/reachability/walk_expand_objects.go
@@ -4,7 +4,9 @@ import (
"fmt"
"codeberg.org/lindenii/furgit/errors"
- "codeberg.org/lindenii/furgit/object"
+ objectcommit "codeberg.org/lindenii/furgit/object/commit"
+ objecttag "codeberg.org/lindenii/furgit/object/tag"
+ objecttree "codeberg.org/lindenii/furgit/object/tree"
objecttype "codeberg.org/lindenii/furgit/object/type"
)
@@ -27,7 +29,7 @@ func (walk *Walk) expandObjects(item walkItem) ([]walkItem, error) {
return nil, err
}
- commit, err := object.ParseCommit(content, item.id.Algorithm())
+ commit, err := objectcommit.Parse(content, item.id.Algorithm())
if err != nil {
return nil, err
}
@@ -46,7 +48,7 @@ func (walk *Walk) expandObjects(item walkItem) ([]walkItem, error) {
return nil, err
}
- tree, err := object.ParseTree(content, item.id.Algorithm())
+ tree, err := objecttree.Parse(content, item.id.Algorithm())
if err != nil {
return nil, err
}
@@ -54,11 +56,11 @@ func (walk *Walk) expandObjects(item walkItem) ([]walkItem, error) {
next := make([]walkItem, 0, len(tree.Entries))
for _, entry := range tree.Entries {
switch entry.Mode {
- case object.FileModeGitlink:
+ case objecttree.FileModeGitlink:
continue
- case object.FileModeDir:
+ case objecttree.FileModeDir:
next = append(next, walkItem{id: entry.ID, want: objecttype.TypeTree})
- case object.FileModeRegular, object.FileModeExecutable, object.FileModeSymlink:
+ case objecttree.FileModeRegular, objecttree.FileModeExecutable, objecttree.FileModeSymlink:
next = append(next, walkItem{id: entry.ID, want: objecttype.TypeBlob})
}
}
@@ -70,7 +72,7 @@ func (walk *Walk) expandObjects(item walkItem) ([]walkItem, error) {
return nil, err
}
- tag, err := object.ParseTag(content, item.id.Algorithm())
+ tag, err := objecttag.Parse(content, item.id.Algorithm())
if err != nil {
return nil, err
}
diff --git a/reachability/walk_verify.go b/reachability/walk_verify.go
index 0469a8e2..c1409ba7 100644
--- a/reachability/walk_verify.go
+++ b/reachability/walk_verify.go
@@ -2,7 +2,7 @@ package reachability
import (
"codeberg.org/lindenii/furgit/errors"
- "codeberg.org/lindenii/furgit/object"
+ objectcommit "codeberg.org/lindenii/furgit/object/commit"
objectid "codeberg.org/lindenii/furgit/object/id"
objecttype "codeberg.org/lindenii/furgit/object/type"
)
@@ -22,7 +22,7 @@ func (walk *Walk) validateCommitObject(id objectid.ObjectID) error {
return err
}
- _, err = object.ParseCommit(content, id.Algorithm())
+ _, err = objectcommit.Parse(content, id.Algorithm())
return err
}