Closed
Description
- Gitea version (or commit ref): 1.9.4 (also 1.10.0+dev-414-gf1fdd782d)
- Git version: not relevant
- Operating system: ubuntu 18.04
- Database (use
[x]
):- PostgreSQL
- MySQL
- MSSQL
- SQLite
- Can you reproduce the bug at https://try.gitea.io:
- Yes (provide example URL)
- No
- Not relevant
- Log gist:
Description
With the combination of many users and many repositories in a team, it can take very long time to add a single new team member. Example adding one user to team with ~100 members x 100 repositories: 160 seconds.
When adding a new team members the function recalculateTeamAccesses is run over all team's repositories. This function has to go through all collaborators and teams for the repository. So the time for adding a repository is something in the order of O(teams:users*repositories). It should be possible to only recalculate the access of the specific user that was added (or deleted) to the team for each repository, only giving O(repositories).