aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packed_write_pack.go17
-rw-r--r--packed_write_test.go4
2 files changed, 16 insertions, 5 deletions
diff --git a/packed_write_pack.go b/packed_write_pack.go
index 504c1087..1d8cbc1e 100644
--- a/packed_write_pack.go
+++ b/packed_write_pack.go
@@ -3,12 +3,16 @@ package furgit
import (
"crypto/rand"
"encoding/binary"
+ "errors"
"hash"
"io"
"codeberg.org/lindenii/furgit/internal/zlib"
)
+// TODO
+var errThinPackUnimplemented = errors.New("furgit: pack: thin packs not implemented")
+
// packWriter writes a PACKv2 stream.
type packWriter struct {
w io.Writer
@@ -277,6 +281,14 @@ func packOfsEncode(dist uint64) ([]byte, error) {
return out[:pos], nil
}
+// packWrite writes a pack stream for the provided object ids.
+func (repo *Repository) packWrite(w io.Writer, objects []Hash, opts packWriteOptions) (Hash, error) {
+ if opts.EnableThinPack {
+ return Hash{}, errThinPackUnimplemented
+ }
+ return repo.packWriteObjects(w, objects, opts, nil)
+}
+
// packWriteReachable writes a pack stream for objects reachable from the
// provided reachability query.
func (repo *Repository) packWriteReachable(w io.Writer, query ReachabilityQuery, opts packWriteOptions) (Hash, error) {
@@ -295,11 +307,10 @@ func (repo *Repository) packWriteReachable(w io.Writer, query ReachabilityQuery,
if err := walk.Err(); err != nil {
return Hash{}, err
}
- return repo.packWrite(w, objects, opts, walk)
+ return repo.packWriteObjects(w, objects, opts, walk)
}
-// packWrite writes a pack stream for the provided object ids.
-func (repo *Repository) packWrite(w io.Writer, objects []Hash, opts packWriteOptions, have *ReachabilityWalk) (Hash, error) {
+func (repo *Repository) packWriteObjects(w io.Writer, objects []Hash, opts packWriteOptions, have *ReachabilityWalk) (Hash, error) {
if repo == nil {
return Hash{}, ErrInvalidObject
}
diff --git a/packed_write_test.go b/packed_write_test.go
index fb26267e..85782c9f 100644
--- a/packed_write_test.go
+++ b/packed_write_test.go
@@ -159,7 +159,7 @@ func TestPackWriteNoDeltas(t *testing.T) {
}
packPath := pf.Name()
idxPath := strings.TrimSuffix(packPath, ".pack") + ".idx"
- if _, err := repo.packWrite(pf, objects, packWriteOptions{}, nil); err != nil {
+ if _, err := repo.packWrite(pf, objects, packWriteOptions{}); err != nil {
_ = pf.Close()
t.Fatalf("packWrite failed: %v", err)
}
@@ -287,7 +287,7 @@ func TestPackWriteDeltas(t *testing.T) {
if _, err := repo.packWrite(pf, objects, packWriteOptions{
EnableDeltas: true,
MinDeltaSavings: 1,
- }, nil); err != nil {
+ }); err != nil {
_ = pf.Close()
t.Fatalf("packWrite failed: %v", err)
}