From 48648d1d86a7b55f5530e737e5262335ab5e17df Mon Sep 17 00:00:00 2001 From: zeripath Date: Sun, 14 Jun 2020 14:55:20 +0100 Subject: [PATCH] Invalidate comments when file is shortened (#11882) * Invalidate comments when file is shortened Fix #10686 Signed-off-by: Andrew Thornton * handle 1 line Signed-off-by: Andrew Thornton --- models/issue_comment.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/models/issue_comment.go b/models/issue_comment.go index 3f2ee8b7d..7e940cbec 100644 --- a/models/issue_comment.go +++ b/models/issue_comment.go @@ -10,6 +10,7 @@ import ( "container/list" "encoding/json" "fmt" + "regexp" "strings" "code.gitea.io/gitea/modules/git" @@ -505,10 +506,12 @@ func (c *Comment) LoadReview() error { return c.loadReview(x) } +var notEnoughLines = regexp.MustCompile(`fatal: file .* has only \d+ lines?`) + func (c *Comment) checkInvalidation(doer *User, repo *git.Repository, branch string) error { // FIXME differentiate between previous and proposed line commit, err := repo.LineBlame(branch, repo.Path, c.TreePath, uint(c.UnsignedLine())) - if err != nil && strings.Contains(err.Error(), "fatal: no such path") { + if err != nil && (strings.Contains(err.Error(), "fatal: no such path") || notEnoughLines.MatchString(err.Error())) { c.Invalidated = true return UpdateComment(c, doer) }