fork of go-git with some jj specific features

Merge pull request #1334 from aymanbagabas/v6-trace-pkt

plumbing: pktline, quote packet data in trace

authored by Paulo Gomes and committed by GitHub fec22fdf a9e6f285

Changed files
+21 -8
plumbing
format
pktline
utils
trace
+14 -6
plumbing/format/pktline/pktline.go
··· 17 17 18 18 defer func() { 19 19 if err == nil { 20 - trace.Packet.Printf("packet: > %04x %s", n, p) 20 + maskPackDataTrace(true, n, p) 21 21 } 22 22 }() 23 23 ··· 146 146 } 147 147 } 148 148 149 - maskPackDataTrace(length, p[LenSize:length]) 149 + maskPackDataTrace(false, length, p[LenSize:length]) 150 150 151 151 return length, err 152 152 } ··· 211 211 } 212 212 } 213 213 214 - maskPackDataTrace(length, buf) 214 + maskPackDataTrace(false, length, buf) 215 215 216 216 return length, buf, err 217 217 } 218 218 219 - func maskPackDataTrace(len int, data []byte) { 219 + func maskPackDataTrace(out bool, l int, data []byte) { 220 + if !trace.Packet.Enabled() { 221 + return 222 + } 223 + 220 224 output := []byte("[ PACKDATA ]") 221 - if len < 400 { 225 + if l < 400 && len(data) > 0 && data[0] != 1 { // [sideband.PackData] 222 226 output = data 223 227 } 224 - trace.Packet.Printf("packet: < %04x %s", len, output) 228 + arrow := '<' 229 + if out { 230 + arrow = '>' 231 + } 232 + trace.Packet.Printf("packet: %c %04x %q", arrow, l, output) 225 233 }
+7 -2
utils/trace/trace.go
··· 69 69 70 70 // Print prints the given message only if the target is enabled. 71 71 func (t Target) Print(args ...interface{}) { 72 - if int32(t)&current.Load() != 0 { 72 + if t.Enabled() { 73 73 logger.Output(2, fmt.Sprint(args...)) // nolint: errcheck 74 74 } 75 75 } 76 76 77 77 // Printf prints the given message only if the target is enabled. 78 78 func (t Target) Printf(format string, args ...interface{}) { 79 - if int32(t)&current.Load() != 0 { 79 + if t.Enabled() { 80 80 logger.Output(2, fmt.Sprintf(format, args...)) // nolint: errcheck 81 81 } 82 82 } 83 + 84 + // Enabled returns true if the target is enabled. 85 + func (t Target) Enabled() bool { 86 + return int32(t)&current.Load() != 0 87 + }