This performance optimization results from the fact that during namespace loading, read permissions are no longer verified for every repository, but only for those that would result in a new namespace. Simply put: If a namespace has already been discovered, no further repositories within that namespace are checked.
We need the new function `streamAll` for this, because the `getAllRepositories` would create all repositories before returning them, which would make it impossible to intervene in time using the filter parameter.
The url needs to be escaped for the route component, so that
react-router can perform his matching logic.
But additionally, the components rendered within the
extension point also need the unescaped url to create further
links based on this url.
* Merge: Author and committer from request
* Squash: Author from request, committer from session
* Rebase: Rebase from original commit, committer from session
* Fast-forward: No changes, author and committer from tip
These are the four stratagies available for a merge. Each of them has a different requirement regarding who is seen as an author and who as a committer.
The configuration options 'maxFormKeys' and 'maxFormContentSize' from
Jetty can now be set using the SCM config.yml file or environment
variables. This is required, when instances with lots of repositories
are to be migrated from 1.x to 3.x.
The review plugin does not explicitly check, if the
branch provider is supported in events. It only checks,
whether the repository supports branches per se.
Therefor, if a tag is created from the ui, an internal server
error is thrown. We prevent this by implementing a
simple branch provider here, too.