"Submodules" feature available: Now it is possible to create 'repositories inside repositories' or 'submodules'. It means that a single physical repository (mapped to a physical database) can contain multiple submodules, each of them being a complete repository.
Check the following example1:
cm mkrep quake cm mkrep quake/engine cm mkrep quake/opengl cm mkrep quake/directx cm lrep 1 default localhost:8084 2 quake localhost:8084 2:1 quake/engine localhost:8084 2:2 quake/opengl localhost:8084 2:3 quake/directx localhost:8084
The 'submodule' name is as follows: parent_repo/module_name, which allows companies creating a repository namespace to better organize big organizations.
In the previous example it would be possible to work on the 'quake' repository as usual, but also on 'quake/engine'.
Each submodule is a complete repository with no differences from a conventional one other than the name and the fact that it is stored inside the database of the parent repository.
From the security point of view the permissions of a submodule inherit from its parent repository.
The main motivation behind submodules is to help IT managers to manage the repositories in huge companies with many small repos which are better stored inside a single physical database. Submodules give more flexibility to the IT managers to design the database infrastructure.
Together with the submodule implementation some improvements have been made to the database layer: Now the Plastic SCM server can start up using clean databases (created by db admins) and create its tables inside. It means the database admins can precreate the databases to contain repositories.
*Submodules are implemented as database schemas in SQL Server and Postgresql.
*For all the other backends new tables prefixed with the module identifier are created.
Eclipse plugin: The PSF now supports submodules in the repository spec.
Command line interface: The time loading client.conf file has been improved if the Plastic SCM version is the one compiled in .NET 4. (in .NET 2 these improvements were already available).
These improvements can be noticed running any 'cm' command, as well as startup time of Plastic SCM GUI client.
Results obtained executing 'cm version --timer':
- .NET 2: Before -> 78 ms. After -> 265 ms. - .NET 4: Before -> 63 ms. After -> 156 ms.