| 1 | = Multiple Repository Support for 0.12 = |
| 2 | |
| 3 | This branch adds support for accessing multiple repositories inside one Trac project. |
| 4 | |
| 5 | For now, there is support for the Mercurial (`hg`) and Subversion (`direct-svnfs`) type of repositories. |
| 6 | |
| 7 | See: log:sandbox/multirepos |
| 8 | |
| 9 | 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. |
| 10 | Actually, a more complete description of the approach can be found in this mail: googlegroups:trac-users:14ca95377e4a53b5 One trac env for X repositories ?]. |
| 11 | |
| 12 | 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. |
| 13 | But `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. |
| 14 | |
| 15 | |
| 16 | = TODO = |
| 17 | - currently, a default repository ''needs'' to be defined, otherwise the versioncontrol modules are disabled |
| 18 | - extend to cached repositories |
| 19 | - IRepositoryProvider must have a way to signal new content, in order to rebuild the repository name cache |