From 6599869f2881a7ae690a68e5a08e2c2a0703aaf2 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sat, 17 Oct 2015 17:25:45 -0400 Subject: #1790 fast return for too large diff --- models/git_diff.go | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'models') diff --git a/models/git_diff.go b/models/git_diff.go index 6698565001..2335e46808 100644 --- a/models/git_diff.go +++ b/models/git_diff.go @@ -86,7 +86,6 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff } leftLine, rightLine int - isTooLong bool // FIXME: Should use cache in the future. buf bytes.Buffer ) @@ -107,9 +106,10 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff i = i + 1 // Diff data too large, we only show the first about maxlines lines - if i == maxlines { - isTooLong = true + if i >= maxlines { log.Warn("Diff data too large") + diff.Files = nil + return diff, nil } switch { @@ -120,10 +120,6 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff curSection.Lines = append(curSection.Lines, diffLine) continue case line[0] == '@': - if isTooLong { - break - } - curSection = &DiffSection{} curFile.Sections = append(curFile.Sections, curSection) ss := strings.Split(line, "@@") @@ -162,10 +158,6 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff // Get new file. if strings.HasPrefix(line, DIFF_HEAD) { - if isTooLong { - break - } - beg := len(DIFF_HEAD) a := line[beg : (len(line)-beg)/2+beg] -- cgit v1.2.3