tangled
alpha
login
or
join now
runxiyu.tngl.sh
/
furgit
6
fork
atom
Fast implementation of Git in pure Go
6
fork
atom
overview
issues
pulls
pipelines
*: Fix lints
runxiyu.tngl.sh
4 days ago
cf02f295
2f427535
verified
This commit was signed with the committer's
known signature
.
runxiyu.tngl.sh
SSH Key Fingerprint:
SHA256:jdcgZM4f40eqgoEW57poBu5vM9WoGE02ZzhWbfbNzc0=
+34
-12
5 changed files
expand all
collapse all
unified
split
format
pack
ingest
idx_write.go
internal
progress
counters.go
render.go
set.go
objectstore
packed
store_lookup.go
+6
-1
format/pack/ingest/idx_write.go
···
171
171
offsetMeter.Stop("done")
172
172
}
173
173
174
174
+
total, err := intconv.IntToUint64(largeOffsetCount)
175
175
+
if err != nil {
176
176
+
return err
177
177
+
}
178
178
+
174
179
largeOffsetMeter := progress.New(progress.Options{
175
180
Writer: state.opts.Progress,
176
181
Flush: state.opts.ProgressFlush,
177
182
Title: "writing index large offsets",
178
178
-
Total: uint64(largeOffsetCount),
183
183
+
Total: total,
179
184
})
180
185
181
186
var largeOffsetDone uint64
+13
-4
internal/progress/counters.go
···
1
1
package progress
2
2
3
3
-
import "fmt"
3
3
+
import (
4
4
+
"fmt"
5
5
+
6
6
+
"codeberg.org/lindenii/furgit/internal/intconv"
7
7
+
)
4
8
5
9
func (meter *Meter) renderCounters() string {
6
10
if meter.total > 0 {
7
7
-
percent := int(meter.lastDone * 100 / meter.total)
8
8
-
meter.lastPercent = percent
11
11
+
u, err := intconv.Uint64ToInt(meter.lastDone * 100 / meter.total)
12
12
+
if err != nil {
13
13
+
return "overflow"
14
14
+
// TODO
15
15
+
}
9
16
10
10
-
return fmt.Sprintf("%3d%% (%d/%d)%s", percent, meter.lastDone, meter.total, meter.throughputSuffix)
17
17
+
meter.lastPercent = u
18
18
+
19
19
+
return fmt.Sprintf("%3d%% (%d/%d)%s", meter.lastPercent, meter.lastDone, meter.total, meter.throughputSuffix)
11
20
}
12
21
13
22
return fmt.Sprintf("%d%s", meter.lastDone, meter.throughputSuffix)
+4
-4
internal/progress/render.go
···
16
16
17
17
counters := meter.renderCounters()
18
18
19
19
-
clear := 0
19
19
+
clear1 := 0
20
20
if len(counters) < meter.lastCounterW {
21
21
-
clear = meter.lastCounterW - len(counters) + 1
21
21
+
clear1 = meter.lastCounterW - len(counters) + 1
22
22
}
23
23
24
24
meter.lastCounterW = len(counters)
25
25
26
26
line := meter.title + ": " + counters
27
27
-
if clear > 0 {
28
28
-
line += strings.Repeat(" ", clear)
27
27
+
if clear1 > 0 {
28
28
+
line += strings.Repeat(" ", clear1)
29
29
}
30
30
31
31
line += eol
+10
-2
internal/progress/set.go
···
1
1
package progress
2
2
3
3
-
import "time"
3
3
+
import (
4
4
+
"time"
5
5
+
6
6
+
"codeberg.org/lindenii/furgit/internal/intconv"
7
7
+
)
4
8
5
9
// Set records current progress and renders when percent changed or the 1s tick
6
10
// elapsed.
···
19
23
percentChanged := false
20
24
21
25
if meter.total > 0 {
22
22
-
percent := int(done * 100 / meter.total)
26
26
+
percent, err := intconv.Uint64ToInt(done * 100 / meter.total)
27
27
+
if err != nil {
28
28
+
return // TODO
29
29
+
}
30
30
+
23
31
percentChanged = percent != meter.lastPercent
24
32
}
25
33
+1
-1
objectstore/packed/store_lookup.go
···
28
28
return loc, nil
29
29
}
30
30
31
31
-
if store.refreshPolicy == RefreshPolicyOnMissing {
31
31
+
if store.refreshPolicy == RefreshPolicyOnMissing { //nolint:nestif
32
32
err = store.Refresh()
33
33
if err != nil {
34
34
return zero, err