mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Invalidate comments when file is shortened (#11882)
* Invalidate comments when file is shortened Fix #10686 Signed-off-by: Andrew Thornton <art27@cantab.net> * handle 1 line Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		| @@ -10,6 +10,7 @@ import ( | |||||||
| 	"container/list" | 	"container/list" | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | 	"regexp" | ||||||
| 	"strings" | 	"strings" | ||||||
|  |  | ||||||
| 	"code.gitea.io/gitea/modules/git" | 	"code.gitea.io/gitea/modules/git" | ||||||
| @@ -505,10 +506,12 @@ func (c *Comment) LoadReview() error { | |||||||
| 	return c.loadReview(x) | 	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 { | func (c *Comment) checkInvalidation(doer *User, repo *git.Repository, branch string) error { | ||||||
| 	// FIXME differentiate between previous and proposed line | 	// FIXME differentiate between previous and proposed line | ||||||
| 	commit, err := repo.LineBlame(branch, repo.Path, c.TreePath, uint(c.UnsignedLine())) | 	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 | 		c.Invalidated = true | ||||||
| 		return UpdateComment(c, doer) | 		return UpdateComment(c, doer) | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user