|Version 1 (modified by 11 years ago) ( diff ),|
Multiple Repository Support for 0.12
This branch adds support for accessing multiple repositories inside one Trac project.
For now, there is support for the Mercurial (
hg) and Subversion (
direct-svnfs) type of repositories.
The approach is quite simple: beyond repository connectors, there's now repository providers (IRepositoryProvider components) which are responsible for make available a list of named repositories. That name can be arbitrary (in particular, it may contain '/' to denote a pseudo-hierarchy) and will be used as a prefix for any repository path. Actually, a more complete description of the approach can be found in this mail: googlegroups:trac-users:14ca95377e4a53b5 One trac env for X repositories ?].
If the only repository known is the default one (i.e. the one defined in TracIni, section
[trac] repository_...), then Trac behaves exactly as before.
IRepositoryProvider components can make other repositories available. In particular, the default
RepositoryManager itself provides a list of repositories listed in a new
[repositories] section in TracIni.
- currently, a default repository needs to be defined, otherwise the versioncontrol modules are disabled
- extend to cached repositories
- IRepositoryProvider must have a way to signal new content, in order to rebuild the repository name cache