Functional acceptance criteria
In SVN administration
- Introduce a new screen / panel to manage repositories default settings (aka "Default repository")
- Under the hood there is a "_admin" repository created for that.
- This repository is only writable by svn administrators (⚠️ Be careful with .SvnAccessFile and default access control, they need to be handled as a specific case).
- This new panel aims to handle all repo settings at then end (email notif, access control, etc) but for a start only "Commit rules" is available
- In "Commit rules" section:
- there are the 2 checkbox "Force every commit to include a reference", "Allow commit message changes". They can be checked or not and saved
- When there is a change, it's logged in "Project History" audit trail
- When "Default repository" is activated, all repositories created afterward are controlled by the project wide repository
- This can be activated / desactivated at will. Changes are logged in "Project History" audit trail
- When the project is used as a template, the settings (use of default repository and commit rules) are inherited.
- Note: it's not possible to "control" across projects
- This configuration is taken into account in XML import / export (for svn service config)
At SVN repository creation
- When "Default repository" is used:
- the values set for "Commit settings" in global config are duplicated
- there is flag associated to the repository to mark that it is "connected" to default config
In SVN repository settings:
- When the repository is "Connected to Default Repository"
- There is a new tab "Global config" that allow to "Disconnect" from Default Repository
- When svn administrator change this setting, it's recored in Project history audit trail
- It's not possible to "Re-connect" again.
- For "Commit rules" tab
- The checkbox are displayed "grayed" with the values set by global configuration
- There is no ways to change the settings
- When svn administrator "Disconnect" the repository from global configuration
- The "Commit rules" are now modifiable
- If there are any changes, the changes are recorded in Project history audit trail
When SVN administrators browse the list of project repositories (service front page) there is:
- A direct access to repositories settings
- A way to distinguish repositories that are "connected" and those that are not
Technical aspects
- The '_admin' repo is created (even on on filesystem) but only accessible in readonly by svn administrators
- There is a refacto to introduce the "AdminRepository" object
- ⚠️ Be careful ⚠️
- All repository settings doesn't apply to _admin repository itself. For instance, if "Reference is mandatory commit rule" is set on _admin, the commits on _admin repository itself doesn't require a reference !
- The "SvnAccessFile" needs to be treated also with a special case for all user group management things like
- Rename of groups
- Add / remove of members
- Ugroup that become empty
- ... (see Tuleap Release Validation)
- There are 2 management of SvnAccessFile
- The one for the admin repo itself (to grant access for svn admins)
- The one for inheritance
- For both of them the management of user groups must be taken into account