@@ -2,6 +2,9 @@ package function
22
33import (
44 "fmt"
5+ "io"
6+
7+ "github.com/sirupsen/logrus"
58
69 "github.com/src-d/gitbase"
710 "github.com/src-d/go-mysql-server/sql"
@@ -12,15 +15,16 @@ import (
1215)
1316
1417type BlameGenerator struct {
18+ ctx *sql.Context
1519 commit *object.Commit
1620 fIter *object.FileIter
1721 curLine int
1822 curFile *object.File
1923 lines []*git.Line
2024}
2125
22- func NewBlameGenerator(c *object.Commit, f *object.FileIter) (*BlameGenerator, error) {
23- return &BlameGenerator{commit: c, fIter: f, curLine: -1}, nil
26+ func NewBlameGenerator(ctx *sql.Context, c *object.Commit, f *object.FileIter) (*BlameGenerator, error) {
27+ return &BlameGenerator{ctx: ctx, commit: c, fIter: f, curLine: -1}, nil
2428}
2529
2630func (g *BlameGenerator) loadNewFile() error {
@@ -32,7 +36,14 @@ func (g *BlameGenerator) loadNewFile() error {
3236
3337 result, err := git.Blame(g.commit, g.curFile.Name)
3438 if err != nil {
35- return err
39+ msg := fmt.Sprintf(
40+ "Error in BLAME for file %s: %s",
41+ g.curFile.Name,
42+ err.Error(),
43+ )
44+ logrus.Warn(msg)
45+ g.ctx.Warn(0, msg)
46+ return io.EOF
3647 }
3748
3849 if len(result.Lines) == 0 {
@@ -145,7 +156,7 @@ func (b *Blame) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) {
145156 return nil, err
146157 }
147158
148- bg, err := NewBlameGenerator(commit, fIter)
159+ bg, err := NewBlameGenerator(ctx, commit, fIter)
149160 if err != nil {
150161 return nil, err
151162 }
0 commit comments