From b140f267b02b0a5466ec74427dba775da93d298c Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 20 Feb 2026 12:41:02 +0800 Subject: Revert "packed: Factor out packWriteObjects and clean up" This reverts commit 06b3648782c860ac0bc096e30e72587d5016e4e4. --- packed_write_pack.go | 17 ++++++++++++++--- packed_write_test.go | 4 ++-- 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) } -- cgit v1.3.1-10-gc9f91