diff options
| author | 2026-03-08 03:22:51 +0800 | |
|---|---|---|
| committer | 2026-03-08 03:22:51 +0800 | |
| commit | 399530fa393b7a23a01e1546273f9abea9c8e87a (patch) | |
| tree | 7548ad72b3ebc9569a7b1a43116c6bd5545e0658 | |
| parent | internal/utils: Add WriteProgressf (diff) | |
| signature | No signature | |
receivepack: Add basic progress logging
| -rw-r--r-- | receivepack/receivepack.go | 1 | ||||
| -rw-r--r-- | receivepack/service/ingest_quarantine.go | 20 | ||||
| -rw-r--r-- | receivepack/service/options.go | 2 |
3 files changed, 23 insertions, 0 deletions
diff --git a/receivepack/receivepack.go b/receivepack/receivepack.go index d4a3f6fb..42095e1b 100644 --- a/receivepack/receivepack.go +++ b/receivepack/receivepack.go @@ -89,6 +89,7 @@ func ReceivePack( Refs: opts.Refs, ExistingObjects: opts.ExistingObjects, ObjectsRoot: opts.ObjectsRoot, + Progress: progressWriter, PromotedObjectPermissions: translatePromotedObjectPermissions( opts.PromotedObjectPermissions, ), diff --git a/receivepack/service/ingest_quarantine.go b/receivepack/service/ingest_quarantine.go index c41f6c86..921ce217 100644 --- a/receivepack/service/ingest_quarantine.go +++ b/receivepack/service/ingest_quarantine.go @@ -4,6 +4,7 @@ import ( "os" "codeberg.org/lindenii/furgit/format/pack/ingest" + "codeberg.org/lindenii/furgit/internal/utils" ) func (service *Service) ingestQuarantine( @@ -15,7 +16,11 @@ func (service *Service) ingestQuarantine( 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 @@ func (service *Service) ingestQuarantine( } 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 @@ func (service *Service) ingestQuarantine( 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 @@ func (service *Service) ingestQuarantine( 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,12 +67,15 @@ func (service *Service) ingestQuarantine( FixThin: true, WriteRev: true, Base: service.opts.ExistingObjects, + Progress: service.opts.Progress, }, ) _ = 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()) @@ -71,6 +85,12 @@ func (service *Service) ingestQuarantine( return "", nil, false } + utils.WriteProgressf( + "receiving objects: unpack ok, %d objects (%s)\n", + ingested.ObjectCount, + ingested.PackHash, + ) + result.Ingest = &ingested return quarantineName, quarantineRoot, true diff --git a/receivepack/service/options.go b/receivepack/service/options.go index b8dda2f7..ec451ebf 100644 --- 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 @@ type Options struct { Refs refstore.ReadWriteStore ExistingObjects objectstore.Store ObjectsRoot *os.Root + Progress io.Writer PromotedObjectPermissions *PromotedObjectPermissions Hook Hook HookIO HookIO |
