Skip to content

Commit c735767

Browse files
committed
recover when go-diff lib panics parsing large commits
sergi/go-diff#89
1 parent d773d83 commit c735767

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

common/sourcecontrol.go

+9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package common
22

33
import (
4+
"errors"
5+
"fmt"
46
"gopkg.in/src-d/go-git.v4"
57
"gopkg.in/src-d/go-git.v4/plumbing"
68
"gopkg.in/src-d/go-git.v4/plumbing/object"
@@ -137,6 +139,13 @@ func GetChangePath(change *object.Change) string {
137139
}
138140

139141
func GetChangeContent(change *object.Change) (string, error) {
142+
//temporary response to: https://github.com/sergi/go-diff/issues/89
143+
defer func() error {
144+
if err := recover(); err != nil {
145+
return errors.New(fmt.Sprintf("Panic occurred while retrieving change content: %s", err))
146+
}
147+
return nil
148+
}()
140149
patch, err := change.Patch()
141150
if err != nil {
142151
return "", err

0 commit comments

Comments
 (0)