All platforms - Server: New Merge Rules system.
We added a Merge Rules system (mergerules.conf). Use it to make branch reviews mandatory prior to merge.
This is a good equivalent to the popular "pull request restrictions" that force to review branches before merge.
The Merge Rules define what branches must be reviewed when merged to certain branches.
If a merge can't happen, you'll receive an error like this:
Cannot perform the merge. Review the branch '/main/QUAK-00' to merge it to '/main'.
Here is an example of a very simple mergerules.conf forcing all branches QUAK-* to be reviewed prior to be merged to main.
The new mergerules.conf is a JSON file that must be placed in the server directory (where plasticd.exe is located).
You will find a mergerules.conf file with some examples in your server directory, inside config_samples, and alongside the binaries for clean setups (on Windows using the installer, and GNU/Linux using the official packages) so you can directly modify it. You don't need to restart the server for changes to take effect!
Each rule defines source and destination branch matching as well. Branch matching is done using name patterns (with '*' to represent any substring), attribute matching, and you can specify multiple rules of each kind, too.
Finally, when you're about to merge a branch, the server will check whether there are any rules that apply to that source/destination pair.
We plan to support different kinds of mergerules in the future, but right now there is only one: 'only_allow_merges_if_reviewed'. If both source and destination branches match a rule of this kind, the server will only to merge source branches that have an Approved review.
It is also possible to filter branches by attributes, instead of names. Check the example mergerules.conf to find all the filtering options.