diff options
| author | 2026-03-08 17:53:45 +0800 | |
|---|---|---|
| committer | 2026-03-08 17:53:45 +0800 | |
| commit | 3fe07dd316bde2ea625166176b2285bf0c631889 (patch) | |
| tree | 181a5aa36765a98a2df43c9ab685cb241fd6a724 /format/pack/ingest | |
| parent | internal/progress: Use range here (diff) | |
| signature | No signature | |
*: Fix lints
Diffstat (limited to 'format/pack/ingest')
| -rw-r--r-- | format/pack/ingest/idx_write.go | 20 | ||||
| -rw-r--r-- | format/pack/ingest/progress_write.go | 1 | ||||
| -rw-r--r-- | format/pack/ingest/rev_write.go | 6 |
3 files changed, 25 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 |
