Skip to main content
Diversion uses a hierarchical access level system to control what users can do in a repository. Each level includes all the permissions of the levels below it.

Access Level Hierarchy

Admin > Write > Merge > Read
Each higher level includes all permissions from lower levels. For example, a user with Write access can also Merge and Read.

What Each Level Can Do

LevelDescriptionOperations
ReadView onlyBrowse files, view commit history, see diffs, download files, review
MergeAccept incoming changesAccept non-conflicting changes from others during merge operations
WriteModify filesCommit changes, resolve merge conflicts
AdminFull control

Repository-Level vs Path-Level Access

Repository-level access is set when you invite a collaborator. This determines the maximum access level the user can have in the repository. Granular permissions access uses granular permissions to control access for specific files or folders. For example, you can give someone Write access to the repository but restrict them to Read-only on sensitive paths.
Granular permissions only restrict access - they cannot grant higher access than the user’s repository-level permission. Once any granular permission rule exists in the repository, users without matching rules are denied all access by default.

Choosing the Right Level

Use CaseRecommended Level
External reviewers or auditorsRead
Team members who receive updates but don’t directly modify filesMerge
Active team members who commit codeWrite
Team leads and repository ownersAdmin
Start with the minimum access level needed. You can always grant additional access later.