shithub: furgit

Download patch

ref: b140f267b02b0a5466ec74427dba775da93d298c
parent: cf67dc51d98981589fd493e4940fbf0d60d115b6
author: Runxi Yu <me@runxiyu.org>
date: Fri Feb 20 07:41:02 EST 2026

Revert "packed: Factor out packWriteObjects and clean up"

This reverts commit 06b3648782c860ac0bc096e30e72587d5016e4e4.

--- a/packed_write_pack.go
+++ b/packed_write_pack.go
@@ -3,6 +3,7 @@
 import (
 	"crypto/rand"
 	"encoding/binary"
+	"errors"
 	"hash"
 	"io"
 
@@ -9,6 +10,9 @@
 	"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 @@
 	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 @@
 	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
 	}
--- a/packed_write_test.go
+++ b/packed_write_test.go
@@ -159,7 +159,7 @@
 	}
 	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 @@
 	if _, err := repo.packWrite(pf, objects, packWriteOptions{
 		EnableDeltas:    true,
 		MinDeltaSavings: 1,
-	}, nil); err != nil {
+	}); err != nil {
 		_ = pf.Close()
 		t.Fatalf("packWrite failed: %v", err)
 	}
--