befafe9a05
This has two major changes that significantly reduce the amount of work done for large diffs: * Kill a running git process when reaching the maximum number of files in a diff, preventing it from processing the entire diff. * When loading a diff with the URL param `file-only=true`, skip loading stats. This speeds up loading both hidden files of a diff and sections of a diff when clicking the "Show More" button. A couple of minor things from profiling are also included: * Reuse existing repo in `PrepareViewPullInfo` if head and base are the same. The performance impact is going to depend heavily on the individual diff and the hardware it runs on, but when testing locally on a diff changing 100k+ lines over hundreds of files, I'm seeing a roughly 75% reduction in time to load the result of "Show More" --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> (cherry picked from commit 7dcccc3bb19655a6f83dd495ffc332708d0c8678) |
||
---|---|---|
.. | ||
actions | ||
badges | ||
flags | ||
setting | ||
activity.go | ||
attachment.go | ||
blame.go | ||
branch.go | ||
cherry_pick.go | ||
code_frequency.go | ||
commit.go | ||
compare.go | ||
contributors.go | ||
download.go | ||
editor.go | ||
editor_test.go | ||
find.go | ||
githttp.go | ||
githttp_test.go | ||
helper.go | ||
helper_test.go | ||
issue.go | ||
issue_content_history.go | ||
issue_dependency.go | ||
issue_label.go | ||
issue_label_test.go | ||
issue_lock.go | ||
issue_pin.go | ||
issue_stopwatch.go | ||
issue_test.go | ||
issue_timetrack.go | ||
issue_watch.go | ||
main_test.go | ||
middlewares.go | ||
migrate.go | ||
milestone.go | ||
packages.go | ||
patch.go | ||
projects.go | ||
projects_test.go | ||
pull.go | ||
pull_review.go | ||
pull_review_test.go | ||
recent_commits.go | ||
release.go | ||
release_test.go | ||
render.go | ||
repo.go | ||
search.go | ||
topic.go | ||
treelist.go | ||
view.go | ||
view_test.go | ||
wiki.go | ||
wiki_test.go |