]> source.dussan.org Git - gitea.git/commitdiff
Fix correct diff view for PR review comments in PR view page (#14002)
authorJimmy Praet <jimmy.praet@telenet.be>
Wed, 16 Dec 2020 09:54:58 +0000 (10:54 +0100)
committerGitHub <noreply@github.com>
Wed, 16 Dec 2020 09:54:58 +0000 (11:54 +0200)
Fixes #13683.

The diff snippet that provides context for a code review comment on the pull request timeline page used to be calculated based on the headCommitID. But in 1.13, with PR #13448, this changed to the commitID from the blame for the commented line, which seems to cause these incorrect review comment diff snippets.

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
services/pull/review.go

index f0ee234a424191d8f10fa5948d3ef2f36f7aad36..6781136061ed76652c1aedcc46d9d96d9e28f435 100644 (file)
@@ -167,16 +167,16 @@ func createCodeComment(doer *models.User, repo *models.Repository, issue *models
 
        // Only fetch diff if comment is review comment
        if len(patch) == 0 && reviewID != 0 {
+               headCommitID, err := gitRepo.GetRefCommitID(pr.GetGitRefName())
+               if err != nil {
+                       return nil, fmt.Errorf("GetRefCommitID[%s]: %v", pr.GetGitRefName(), err)
+               }
                if len(commitID) == 0 {
-                       commitID, err = gitRepo.GetRefCommitID(pr.GetGitRefName())
-                       if err != nil {
-                               return nil, fmt.Errorf("GetRefCommitID[%s]: %v", pr.GetGitRefName(), err)
-                       }
+                       commitID = headCommitID
                }
-
                patchBuf := new(bytes.Buffer)
-               if err := git.GetRepoRawDiffForFile(gitRepo, pr.MergeBase, commitID, git.RawDiffNormal, treePath, patchBuf); err != nil {
-                       return nil, fmt.Errorf("GetRawDiffForLine[%s, %s, %s, %s]: %v", gitRepo.Path, pr.MergeBase, commitID, treePath, err)
+               if err := git.GetRepoRawDiffForFile(gitRepo, pr.MergeBase, headCommitID, git.RawDiffNormal, treePath, patchBuf); err != nil {
+                       return nil, fmt.Errorf("GetRawDiffForLine[%s, %s, %s, %s]: %v", gitRepo.Path, pr.MergeBase, headCommitID, treePath, err)
                }
                patch = git.CutDiffAroundLine(patchBuf, int64((&models.Comment{Line: line}).UnsignedLine()), line < 0, setting.UI.CodeCommentLines)
        }