- fixes#5561
- added new preview for size (commits/files) of PRs before opening, this is now based on the special logic that calculates common ancestor and has access to preview diff
- store common ancestor in DB so updates of pull-requests are consistent
- those are now safe to cache since we have a proper cache invalidation logic for permissions of users
- for lots of repo this makes our goto switcher much much faster
- allows writing custom actions on top of comments
- new rcextension hooks
- organized and renamed some hooks
- new helpers for rcextensions
- fixes#5583
- we're now searching for dangling commits in a repo that has them and cannot see them because of failed merge checks.
- pull-request: will save metadata during merge simulation so merge conflicts are permanently stored, and showed to all users.
This combined with full text search build for certain repositories that each commit
contains lots of file changes results in *huge* (10x in some cases) performance gain.
- Before that change on each requests 4x we loaded plugins for authentication, this hit
many caches, db invalidation context and loaded the plugins logic each time. This was a heavy performance hit
for SVN and other backends as they needed to load that plugins many many times
- Since Authentication plugins almost never change, we'll not store the plugins listed for authentication into
the authnregistry for each process
- For AuthPlugins settings we now also flush plugins settings, and authnregistry cached plugins
- since we *always* generate a global config and register it into request
make use of it, and not rely on the get_all_settings heavy logic that makes
it slow to fetch because of cache checks.
Within single request we're fine to re-use it when ever request attribute is available
- Groups will be updated by iteration from the most depth one to the root. This way we ensure proper updated of all multiple nested
- repositories don't need special logic and will be updated only on changes.
- in some cases when super-admins or all repos in root loading main
page could take minutes because we loaded whole dataset.
- this change make the loading limited to first page of data.
Rest is loaded via DB pagination
- In many cases this is major speed-up for showing 1st page fast.
- dont load all results for repositories in admin
- speed up loading admin repos page by narrowing results based on permissions
- some small speed ups and code optimizations on permission loading