c1f85ce27b
`BranchName` provides the nearest branch of the requested `:commit`. It's plenty fast on smaller repositories. On larger repositories like nixpkgs, however, this can easily take 2-3 seconds on a modern machine on a NVMe. For context, at the time of writing, nixpkgs has over 650k commits and roughly 250 branches. `BranchName` is used once in the whole view: The cherry-pick target branch default selection. And I believe that's a logic error, which is why this patch is so small. The nearest branch of a given commit will always be a branch the commit is already part of. The branch you most likely *don't* want to cherry-pick to. Sure, one can technically cherry-pick a commit onto the same branch, but that simply results in an empty commit. I don't believe this is intended and even less so worth the compute. Instead, the cherry-pick branch selection suggestion now always uses the default branch, which used to be the fallback. If a user wants to know which branches contain the given commit, `load-branches-and-tags` exists and should be used instead. Also, to add insult to injury, `BranchName` was calculated for both logged-in and not logged-in users, despite its only consumer, the cherry-pick operation, only being rendered when a given user has write/commit permissions. But this isn't particularly surprising, given this happens a lot in Forgejo's codebase. |
||
---|---|---|
.. | ||
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 |