diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 12a78f7ccb279..a41058f412b8d 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -865,10 +865,7 @@ func ExcerptBlob(ctx *context.Context) { direction := ctx.FormString("direction") filePath := ctx.FormString("path") gitRepo := ctx.Repo.GitRepo - lastRightCommentIdx := ctx.FormInt("last_left_comment_idx") - rightCommentIdx := ctx.FormInt("left_comment_idx") fileName := ctx.FormString("file_name") - if ctx.FormBool("pull") { ctx.Data["PageIsPullFiles"] = true } @@ -882,17 +879,17 @@ func ExcerptBlob(ctx *context.Context) { } defer gitRepo.Close() } - issue, err := issues_model.GetIssueByIndex(ctx, ctx.Repo.Repository.ID, int64(2)) - if err != nil { ctx.ServerError("GetIssueByIndex", err) return } - allComments, err := issues_model.FetchCodeComments(ctx, issue, ctx.Doer, false) + if err != nil { + ctx.ServerError("FetchCodeComments", err) + return + } lineCommits := allComments[fileName] - chunkSize := gitdiff.BlobExcerptChunkSize commit, err := gitRepo.GetCommit(commitID) if err != nil { @@ -909,9 +906,9 @@ func ExcerptBlob(ctx *context.Context) { idxRight -= chunkSize leftHunkSize += chunkSize rightHunkSize += chunkSize - section.Lines, err = getExcerptLines(commit, filePath, idxLeft-1, idxRight-1, chunkSize, lastRightCommentIdx, rightCommentIdx) + section.Lines, err = getExcerptLines(commit, filePath, idxLeft-1, idxRight-1, chunkSize) } else if direction == "down" && (idxLeft-lastLeft) > chunkSize { - section.Lines, err = getExcerptLines(commit, filePath, lastLeft, lastRight, chunkSize, lastRightCommentIdx, rightCommentIdx) + section.Lines, err = getExcerptLines(commit, filePath, lastLeft, lastRight, chunkSize) lastLeft += chunkSize lastRight += chunkSize } else { @@ -919,7 +916,7 @@ func ExcerptBlob(ctx *context.Context) { if direction == "down" { offset = 0 } - section.Lines, err = getExcerptLines(commit, filePath, lastLeft, lastRight, idxRight-lastRight+offset, lastRightCommentIdx, rightCommentIdx) + section.Lines, err = getExcerptLines(commit, filePath, lastLeft, lastRight, idxRight-lastRight+offset) leftHunkSize = 0 rightHunkSize = 0 idxLeft = lastLeft @@ -958,30 +955,19 @@ func ExcerptBlob(ctx *context.Context) { section.Lines = append(section.Lines, lineSection) } } - for _, line := range section.Lines { if line.SectionInfo != nil { - //for now considerign only right side. start := int64(line.SectionInfo.LastRightIdx + 1) end := int64(line.SectionInfo.RightIdx - 1) - - //to check section has comments or not. - //1. we can use binary search - //2. we can LastRightCommentIdx, RightCommentIdx, LastLeftCommentIdx, LeftCommentIdx(little complex but fast) - //3. for demo using linear search for start <= end { if _, ok := lineCommits[start]; ok { if !line.SectionInfo.HasComments { - // line.SectionInfo.LastRightCommentIdx = int(start) - // line.SectionInfo.RightCommentIdx = int(start) line.SectionInfo.HasComments = true break } - } - start += 1 + start++ } - } if comments, ok := lineCommits[int64(line.LeftIdx*-1)]; ok { line.Comments = append(line.Comments, comments...) @@ -994,7 +980,6 @@ func ExcerptBlob(ctx *context.Context) { return line.Comments[i].CreatedUnix < line.Comments[j].CreatedUnix }) } - for _, line := range section.Lines { for _, comment := range line.Comments { if err := comment.LoadAttachments(ctx); err != nil { @@ -1003,18 +988,15 @@ func ExcerptBlob(ctx *context.Context) { } } } - ctx.Data["section"] = section ctx.Data["FileNameHash"] = git.HashFilePathForWebUI(filePath) ctx.Data["AfterCommitID"] = commitID ctx.Data["Anchor"] = anchor ctx.Data["Issue"] = issue ctx.Data["issue"] = issue.Index - ctx.Data["SignedUserID"] = ctx.Data["SignedUserID"] ctx.Data["CanBlockUser"] = func(blocker, blockee *user_model.User) bool { return user_service.CanBlockUser(ctx, ctx.Doer, blocker, blockee) } - if ctx.Data["SignedUserID"] == nil { ctx.Data["SignedUserID"] = ctx.Doer.ID } @@ -1025,7 +1007,7 @@ func ExcerptBlob(ctx *context.Context) { ctx.HTML(http.StatusOK, tplBlobExcerpt) } -func getExcerptLines(commit *git.Commit, filePath string, idxLeft, idxRight, chunkSize, lastRightCommentIdx, rightCommentIdx int) ([]*gitdiff.DiffLine, error) { +func getExcerptLines(commit *git.Commit, filePath string, idxLeft, idxRight, chunkSize int) ([]*gitdiff.DiffLine, error) { blob, err := commit.Tree.GetBlobByPath(filePath) if err != nil { return nil, err @@ -1052,10 +1034,6 @@ func getExcerptLines(commit *git.Commit, filePath string, idxLeft, idxRight, chu Content: " " + lineText, Comments: []*issues_model.Comment{}, } - // if diffLine.SectionInfo != nil { - // diffLine.SectionInfo.LastRightCommentIdx = lastRightCommentIdx - // diffLine.SectionInfo.RightCommentIdx = rightCommentIdx - // } diffLines = append(diffLines, diffLine) } if err = scanner.Err(); err != nil { diff --git a/routers/web/web.go b/routers/web/web.go index 3aa9ba9f09ba7..388e473b668cb 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -1513,7 +1513,6 @@ func registerRoutes(m *web.Router) { // FIXME: refactor this function, use separate routes for wiki/code if ctx.FormBool("pull") { ctx.Data["PageIsPullFiles"] = true - } if ctx.FormBool("wiki") { diff --git a/services/gitdiff/gitdiff.go b/services/gitdiff/gitdiff.go index 1954be760ad64..9dedf618b1591 100644 --- a/services/gitdiff/gitdiff.go +++ b/services/gitdiff/gitdiff.go @@ -485,20 +485,14 @@ func (diff *Diff) LoadComments(ctx context.Context, issue *issues_model.Issue, c if line.SectionInfo != nil { start := int64(line.SectionInfo.LastRightIdx + 1) end := int64(line.SectionInfo.RightIdx - 1) - for start <= end { if _, ok := lineCommits[start]; ok { - if line.SectionInfo.LastRightCommentIdx == 0 { - // line.SectionInfo.LastRightCommentIdx = int(start) - // line.SectionInfo.RightCommentIdx = int(start) + if !line.SectionInfo.HasComments { line.SectionInfo.HasComments = true - break } - } - start += 1 - + start++ } } if comments, ok := lineCommits[int64(line.LeftIdx*-1)]; ok { diff --git a/services/gitdiff/gitdiff_test.go b/services/gitdiff/gitdiff_test.go index adcac355a7bb4..644c2475f40ac 100644 --- a/services/gitdiff/gitdiff_test.go +++ b/services/gitdiff/gitdiff_test.go @@ -615,7 +615,7 @@ func TestDiff_LoadCommentsWithOutdated(t *testing.T) { } func TestDiffLine_CanComment(t *testing.T) { - assert.False(t, (&DiffLine{Type: DiffLineSection}).CanComment()) + assert.True(t, (&DiffLine{Type: DiffLineSection}).CanComment()) assert.False(t, (&DiffLine{Type: DiffLineAdd, Comments: []*issues_model.Comment{{Content: "bla"}}}).CanComment()) assert.True(t, (&DiffLine{Type: DiffLineAdd}).CanComment()) assert.True(t, (&DiffLine{Type: DiffLineDel}).CanComment()) diff --git a/templates/repo/diff/blob_excerpt.tmpl b/templates/repo/diff/blob_excerpt.tmpl index 63d6f970b640b..50ecd266219d1 100644 --- a/templates/repo/diff/blob_excerpt.tmpl +++ b/templates/repo/diff/blob_excerpt.tmpl @@ -91,19 +91,16 @@ - test else down blob {{$line.SectionInfo.HasComments}} {{end}} {{if or (eq $expandDirection 3) (eq $expandDirection 4)}} - test else up blob {{end}} {{if eq $expandDirection 2}} - test else both blob {{end}} diff --git a/templates/repo/diff/section_unified.tmpl b/templates/repo/diff/section_unified.tmpl index 5c90d79459bc3..f2b51cfa1669a 100644 --- a/templates/repo/diff/section_unified.tmpl +++ b/templates/repo/diff/section_unified.tmpl @@ -27,19 +27,16 @@ - test down {{end}} {{if or (eq $expandDirection 3) (eq $expandDirection 4)}} - test up {{end}} {{if eq $expandDirection 2}} - test fold {{end}}