From 3fe07dd316bde2ea625166176b2285bf0c631889 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 8 Mar 2026 17:53:45 +0800 Subject: *: Fix lints --- format/pack/ingest/idx_write.go | 20 ++++++++++++++++++-- format/pack/ingest/progress_write.go | 1 + format/pack/ingest/rev_write.go | 6 ++++++ internal/progress/humanize.go | 1 + internal/progress/render.go | 4 ++++ internal/progress/set.go | 1 + objectstore/packed/idx_candidates_mru.go | 1 + receivepack/receivepack.go | 1 + 8 files changed, 33 insertions(+), 2 deletions(-) diff --git a/format/pack/ingest/idx_write.go b/format/pack/ingest/idx_write.go index 0523ac1d..91f70f3f 100644 --- a/format/pack/ingest/idx_write.go +++ b/format/pack/ingest/idx_write.go @@ -40,8 +40,11 @@ func writeIdx(state *ingestState) error { return nil } - var scratch [8]byte - var fanout [256]uint32 + var ( + scratch [8]byte + fanout [256]uint32 + ) + writeProgress(state, "writing index fanout...\r") for _, recordIdx := range order { @@ -51,6 +54,7 @@ func writeIdx(state *ingestState) error { binary.BigEndian.PutUint32(scratch[:4], idxMagicV2) binary.BigEndian.PutUint32(scratch[4:8], idxVersionV2) + err = write(scratch[:8]) if err != nil { return err @@ -66,9 +70,11 @@ func writeIdx(state *ingestState) error { return err } } + writeProgress(state, "writing index fanout: done.\n") largeOffsetCount := 0 + for idx := range state.records { if state.records[idx].offset >= 0x80000000 { largeOffsetCount++ @@ -81,6 +87,7 @@ func writeIdx(state *ingestState) error { Title: "writing index object ids", Total: uint64(len(order)), }) + var oidDone uint64 for _, recordIdx := range order { @@ -94,6 +101,7 @@ func writeIdx(state *ingestState) error { oidDone++ oidMeter.Set(oidDone, 0) } + if oidDone > 0 { oidMeter.Stop("done") } @@ -104,6 +112,7 @@ func writeIdx(state *ingestState) error { Title: "writing index crc32", Total: uint64(len(order)), }) + var crcDone uint64 for _, recordIdx := range order { @@ -117,6 +126,7 @@ func writeIdx(state *ingestState) error { crcDone++ crcMeter.Set(crcDone, 0) } + if crcDone > 0 { crcMeter.Stop("done") } @@ -128,6 +138,7 @@ func writeIdx(state *ingestState) error { Title: "writing index offsets", Total: uint64(len(order)), }) + var offsetDone uint64 for _, recordIdx := range order { @@ -155,6 +166,7 @@ func writeIdx(state *ingestState) error { offsetDone++ offsetMeter.Set(offsetDone, 0) } + if offsetDone > 0 { offsetMeter.Stop("done") } @@ -165,7 +177,9 @@ func writeIdx(state *ingestState) error { Title: "writing index large offsets", Total: uint64(largeOffsetCount), }) + var largeOffsetDone uint64 + for _, off := range largeOffsets { binary.BigEndian.PutUint64(scratch[:8], off) @@ -177,6 +191,7 @@ func writeIdx(state *ingestState) error { largeOffsetDone++ largeOffsetMeter.Set(largeOffsetDone, 0) } + if largeOffsetDone > 0 { largeOffsetMeter.Stop("done") } @@ -199,6 +214,7 @@ func writeIdx(state *ingestState) error { if err != nil { return err } + writeProgress(state, "writing index trailer: done.\n") return nil diff --git a/format/pack/ingest/progress_write.go b/format/pack/ingest/progress_write.go index 3150032b..f372f9d0 100644 --- a/format/pack/ingest/progress_write.go +++ b/format/pack/ingest/progress_write.go @@ -4,6 +4,7 @@ import "codeberg.org/lindenii/furgit/internal/utils" func writeProgress(state *ingestState, format string, args ...any) { utils.BestEffortFprintf(state.opts.Progress, format, args...) + if state.opts.ProgressFlush != nil { _ = state.opts.ProgressFlush() } diff --git a/format/pack/ingest/rev_write.go b/format/pack/ingest/rev_write.go index 9ed8dc6c..9b9432dc 100644 --- a/format/pack/ingest/rev_write.go +++ b/format/pack/ingest/rev_write.go @@ -34,6 +34,7 @@ func writeRev(state *ingestState) error { } var scratch [8]byte + writeProgress(state, "writing reverse index header...\r") binary.BigEndian.PutUint32(scratch[:4], revMagic) @@ -55,6 +56,7 @@ func writeRev(state *ingestState) error { if err != nil { return err } + writeProgress(state, "writing reverse index header: done.\n") entriesMeter := progress.New(progress.Options{ @@ -63,6 +65,7 @@ func writeRev(state *ingestState) error { Title: "writing reverse index entries", Total: uint64(len(packOrder)), }) + var entriesDone uint64 for _, recordIdx := range packOrder { @@ -77,9 +80,11 @@ func writeRev(state *ingestState) error { if err != nil { return err } + entriesDone++ entriesMeter.Set(entriesDone, 0) } + if entriesDone > 0 { entriesMeter.Stop("done") } @@ -102,6 +107,7 @@ func writeRev(state *ingestState) error { if err != nil { return err } + writeProgress(state, "writing reverse index trailer: done.\n") return nil diff --git a/internal/progress/humanize.go b/internal/progress/humanize.go index fd68e1e9..f13845f7 100644 --- a/internal/progress/humanize.go +++ b/internal/progress/humanize.go @@ -9,6 +9,7 @@ func humanizeBytes(n uint64) string { } value := float64(n) + units := []string{"KiB", "MiB", "GiB", "TiB", "PiB"} for i := range units { value /= unit diff --git a/internal/progress/render.go b/internal/progress/render.go index a2395d98..36836cde 100644 --- a/internal/progress/render.go +++ b/internal/progress/render.go @@ -15,19 +15,23 @@ func (meter *Meter) render(now time.Time, eol string) { meter.refreshThroughput(now) counters := meter.renderCounters() + clear := 0 if len(counters) < meter.lastCounterW { clear = meter.lastCounterW - len(counters) + 1 } + meter.lastCounterW = len(counters) line := meter.title + ": " + counters if clear > 0 { line += strings.Repeat(" ", clear) } + line += eol utils.BestEffortFprintf(meter.writer, "%s", line) + if meter.flush != nil { _ = meter.flush() } diff --git a/internal/progress/set.go b/internal/progress/set.go index 3a580a63..b7ed5b28 100644 --- a/internal/progress/set.go +++ b/internal/progress/set.go @@ -17,6 +17,7 @@ func (meter *Meter) Set(done uint64, bytes uint64) { forced := meter.consumeUpdateTick(now) percentChanged := false + if meter.total > 0 { percent := int(done * 100 / meter.total) percentChanged = percent != meter.lastPercent diff --git a/objectstore/packed/idx_candidates_mru.go b/objectstore/packed/idx_candidates_mru.go index b0960df5..d0cc7052 100644 --- a/objectstore/packed/idx_candidates_mru.go +++ b/objectstore/packed/idx_candidates_mru.go @@ -88,6 +88,7 @@ func (store *Store) touchCandidate(packName string) { } node.prev = nil + node.next = store.mruHead if store.mruHead != nil { store.mruHead.prev = node diff --git a/receivepack/receivepack.go b/receivepack/receivepack.go index e85ac27f..aeec9370 100644 --- a/receivepack/receivepack.go +++ b/receivepack/receivepack.go @@ -89,6 +89,7 @@ func ReceivePack( progressWriter := protoSession.ProgressWriter() progressFlush := base.FlushIO + if req.Capabilities.Quiet { progressWriter = io.Discard progressFlush = nil -- cgit v1.3.1-10-gc9f91