aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/format/pktline/scanner.go
diff options
context:
space:
mode:
authorAyman Bagabas <ayman.bagabas@gmail.com>2023-11-17 15:28:25 -0500
committerAyman Bagabas <ayman.bagabas@gmail.com>2023-11-23 11:46:54 -0500
commite2c6ae3333a3facd13aa52e1986a2ba2dbc56a9d (patch)
tree99aa669c39e7c2530ed7ef8af88c3c5d62931c1f /plumbing/format/pktline/scanner.go
parente1875336041ead704df7f481f8691452ef939556 (diff)
downloadgo-git-e2c6ae3333a3facd13aa52e1986a2ba2dbc56a9d.tar.gz
plumbing: handle pktline erro-line as errors
Error when encountering an error-line See https://git-scm.com/docs/pack-protocol Update plumbing/format/pktline/error.go Co-authored-by: Paulo Gomes <paulo.gomes.uk@gmail.com> Update plumbing/format/pktline/error.go Co-authored-by: Paulo Gomes <paulo.gomes.uk@gmail.com> feat: format newline
Diffstat (limited to 'plumbing/format/pktline/scanner.go')
-rw-r--r--plumbing/format/pktline/scanner.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/plumbing/format/pktline/scanner.go b/plumbing/format/pktline/scanner.go
index 5e85ed0..fbb137d 100644
--- a/plumbing/format/pktline/scanner.go
+++ b/plumbing/format/pktline/scanner.go
@@ -1,8 +1,10 @@
package pktline
import (
+ "bytes"
"errors"
"io"
+ "strings"
"github.com/go-git/go-git/v5/utils/trace"
)
@@ -69,6 +71,13 @@ func (s *Scanner) Scan() bool {
s.payload = s.payload[:l]
trace.Packet.Printf("packet: < %04x %s", l, s.payload)
+ if bytes.HasPrefix(s.payload, errPrefix) {
+ s.err = &ErrorLine{
+ Text: strings.TrimSpace(string(s.payload[4:])),
+ }
+ return false
+ }
+
return true
}