ref: 399530fa393b7a23a01e1546273f9abea9c8e87a
parent: 3ec995bbe8009d1550ea3e2005e7e544aac2ad2e
author: Runxi Yu <me@runxiyu.org>
date: Sat Mar 7 22:22:51 EST 2026
receivepack: Add basic progress logging
--- a/receivepack/receivepack.go
+++ b/receivepack/receivepack.go
@@ -89,6 +89,7 @@
Refs: opts.Refs,
ExistingObjects: opts.ExistingObjects,
ObjectsRoot: opts.ObjectsRoot,
+ Progress: progressWriter,
PromotedObjectPermissions: translatePromotedObjectPermissions(
opts.PromotedObjectPermissions,
),
--- a/receivepack/service/ingest_quarantine.go
+++ b/receivepack/service/ingest_quarantine.go
@@ -4,6 +4,7 @@
"os"
"codeberg.org/lindenii/furgit/format/pack/ingest"
+ "codeberg.org/lindenii/furgit/internal/utils"
)
func (service *Service) ingestQuarantine(
@@ -15,7 +16,11 @@
return "", nil, true
}
+ utils.WriteProgressf(service.opts.Progress, "receiving objects: ingesting pack\n")
+
if req.Pack == nil {+ utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: missing pack stream\n")
+
result.UnpackError = "missing pack stream"
fillCommandErrors(result, commands, "missing pack stream")
@@ -23,6 +28,8 @@
}
if service.opts.ObjectsRoot == nil {+ utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: objects root not configured\n")
+
result.UnpackError = "objects root not configured"
fillCommandErrors(result, commands, "objects root not configured")
@@ -31,6 +38,8 @@
quarantineName, quarantineRoot, err := service.createQuarantineRoot()
if err != nil {+ utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: %v\n", err)
+
result.UnpackError = err.Error()
fillCommandErrors(result, commands, err.Error())
@@ -39,6 +48,8 @@
quarantinePackRoot, err := service.openQuarantinePackRoot(quarantineRoot)
if err != nil {+ utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: %v\n", err)
+
result.UnpackError = err.Error()
fillCommandErrors(result, commands, err.Error())
@@ -56,6 +67,7 @@
FixThin: true,
WriteRev: true,
Base: service.opts.ExistingObjects,
+ Progress: service.opts.Progress,
},
)
@@ -62,6 +74,8 @@
_ = quarantinePackRoot.Close()
if err != nil {+ utils.WriteProgressf(service.opts.Progress, "receiving objects: unpack failed: %v\n", err)
+
result.UnpackError = err.Error()
fillCommandErrors(result, commands, err.Error())
@@ -70,6 +84,12 @@
return "", nil, false
}
+
+ utils.WriteProgressf(
+ "receiving objects: unpack ok, %d objects (%s)\n",
+ ingested.ObjectCount,
+ ingested.PackHash,
+ )
result.Ingest = &ingested
--- a/receivepack/service/options.go
+++ b/receivepack/service/options.go
@@ -1,6 +1,7 @@
package service
import (
+ "io"
"io/fs"
"os"
@@ -20,6 +21,7 @@
Refs refstore.ReadWriteStore
ExistingObjects objectstore.Store
ObjectsRoot *os.Root
+ Progress io.Writer
PromotedObjectPermissions *PromotedObjectPermissions
Hook Hook
HookIO HookIO
--
⑨