aboutsummaryrefslogtreecommitdiff
path: root/repository
diff options
context:
space:
mode:
Diffstat (limited to 'repository')
-rw-r--r--repository/close.go8
-rw-r--r--repository/objects.go46
-rw-r--r--repository/open.go6
-rw-r--r--repository/repository.go15
-rw-r--r--repository/write_loose.go2
5 files changed, 25 insertions, 52 deletions
diff --git a/repository/close.go b/repository/close.go
index 9654918c..b76570bb 100644
--- a/repository/close.go
+++ b/repository/close.go
@@ -21,15 +21,15 @@ func (repo *Repository) Close() error {
}
}
- if repo.objectsLooseForWritingOnly != nil {
- err := repo.objectsLooseForWritingOnly.Close()
+ if repo.objectsPacked != nil {
+ err := repo.objectsPacked.Close()
if err != nil {
errs = append(errs, err)
}
}
- if repo.objectsWriteRoot != nil {
- err := repo.objectsWriteRoot.Close()
+ if repo.objectsLoose != nil {
+ err := repo.objectsLoose.Close()
if err != nil {
errs = append(errs, err)
}
diff --git a/repository/objects.go b/repository/objects.go
index 207ac7f1..b7ca2094 100644
--- a/repository/objects.go
+++ b/repository/objects.go
@@ -20,8 +20,8 @@ func openObjectStore(
objects objectstore.Store,
objectsRoot *os.Root,
objectsPackRoot *os.Root,
- objectsLooseForWritingOnly *objectloose.Store,
- objectsWriteRoot *os.Root,
+ objectsLoose *objectloose.Store,
+ objectsPacked *objectpacked.Store,
err error,
) {
objectsRoot, err = root.OpenRoot("objects")
@@ -29,35 +29,33 @@ func openObjectStore(
return nil, nil, nil, nil, nil, fmt.Errorf("repository: open objects: %w", err)
}
- looseStore, err := objectloose.New(objectsRoot, algo)
+ objectsLoose, err = objectloose.New(objectsRoot, algo)
if err != nil {
_ = objectsRoot.Close()
return nil, nil, nil, nil, nil, err
}
- backends := []objectstore.Store{looseStore}
+ backends := []objectstore.Store{objectsLoose}
objectsPackRoot, err = objectsRoot.OpenRoot("pack")
if err == nil {
- var packedStore *objectpacked.Store
-
- packedStore, err = objectpacked.New(
+ objectsPacked, err = objectpacked.New(
objectsPackRoot,
algo,
objectpacked.Options{RefreshPolicy: objectpacked.RefreshPolicyNever},
)
if err != nil {
_ = objectsPackRoot.Close()
- _ = looseStore.Close()
+ _ = objectsLoose.Close()
_ = objectsRoot.Close()
return nil, nil, nil, nil, nil, err
}
- backends = append(backends, packedStore)
+ backends = append(backends, objectsPacked)
} else if !errors.Is(err, os.ErrNotExist) {
- _ = looseStore.Close()
+ _ = objectsLoose.Close()
_ = objectsRoot.Close()
return nil, nil, nil, nil, nil, fmt.Errorf("repository: open objects/pack: %w", err)
@@ -65,33 +63,7 @@ func openObjectStore(
objects = objectmix.New(backends...)
- objectsWriteRoot, err = root.OpenRoot("objects")
- if err != nil {
- _ = objects.Close()
- if objectsPackRoot != nil {
- _ = objectsPackRoot.Close()
- }
-
- _ = objectsRoot.Close()
-
- return nil, nil, nil, nil, nil, fmt.Errorf("repository: open objects for loose writing: %w", err)
- }
-
- objectsLooseForWritingOnly, err = objectloose.New(objectsWriteRoot, algo)
- if err != nil {
- _ = objects.Close()
-
- _ = objectsWriteRoot.Close()
- if objectsPackRoot != nil {
- _ = objectsPackRoot.Close()
- }
-
- _ = objectsRoot.Close()
-
- return nil, nil, nil, nil, nil, err
- }
-
- return objects, objectsRoot, objectsPackRoot, objectsLooseForWritingOnly, objectsWriteRoot, nil
+ return objects, objectsRoot, objectsPackRoot, objectsLoose, objectsPacked, nil
}
// Objects returns the configured object store.
diff --git a/repository/open.go b/repository/open.go
index f7f2dd1c..c7dca578 100644
--- a/repository/open.go
+++ b/repository/open.go
@@ -33,7 +33,7 @@ func Open(root *os.Root) (repo *Repository, err error) {
repo.algo = algo
- objects, objectsRoot, objectsPackRoot, objectsLooseForWritingOnly, objectsWriteRoot, err := openObjectStore(root, algo)
+ objects, objectsRoot, objectsPackRoot, objectsLoose, objectsPacked, err := openObjectStore(root, algo)
if err != nil {
return nil, err
}
@@ -41,8 +41,8 @@ func Open(root *os.Root) (repo *Repository, err error) {
repo.objects = objects
repo.objectsRoot = objectsRoot
repo.objectsPackRoot = objectsPackRoot
- repo.objectsLooseForWritingOnly = objectsLooseForWritingOnly
- repo.objectsWriteRoot = objectsWriteRoot
+ repo.objectsLoose = objectsLoose
+ repo.objectsPacked = objectsPacked
refRoot, err := root.OpenRoot(".")
if err != nil {
diff --git a/repository/repository.go b/repository/repository.go
index f9bb2d2b..c56827cd 100644
--- a/repository/repository.go
+++ b/repository/repository.go
@@ -8,6 +8,7 @@ import (
"codeberg.org/lindenii/furgit/objectid"
"codeberg.org/lindenii/furgit/objectstore"
objectloose "codeberg.org/lindenii/furgit/objectstore/loose"
+ objectpacked "codeberg.org/lindenii/furgit/objectstore/packed"
"codeberg.org/lindenii/furgit/refstore"
)
@@ -19,11 +20,11 @@ type Repository struct {
config *config.Config
algo objectid.Algorithm
- objects objectstore.Store
- objectsRoot *os.Root
- objectsPackRoot *os.Root
- objectsLooseForWritingOnly *objectloose.Store
- objectsWriteRoot *os.Root
- refRoot *os.Root
- refs refstore.ReadWriteStore
+ objects objectstore.Store
+ objectsRoot *os.Root
+ objectsPackRoot *os.Root
+ objectsLoose *objectloose.Store
+ objectsPacked *objectpacked.Store
+ refRoot *os.Root
+ refs refstore.ReadWriteStore
}
diff --git a/repository/write_loose.go b/repository/write_loose.go
index 86f73e52..bd8d7f57 100644
--- a/repository/write_loose.go
+++ b/repository/write_loose.go
@@ -5,5 +5,5 @@ import (
)
func (repo *Repository) LooseStoreForWriting() *objectloose.Store {
- return repo.objectsLooseForWritingOnly
+ return repo.objectsLoose
}