Version 6 (modified by 16 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.
See:
Checkpoints:
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: 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.
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. See r6447 for more details.
TODO
- More IRepositoryProvider components:
- HgForestRepositoryProvider, for providing forest repositories and all sub-repositories managed by each forest
- work-in-progress on http://hg.trbs.net
- in trac.conf use:
[hg-forest] jdk7.dir = /path/to/mercurial/root/forest/repository/jdk7
- HgParentDirRepositoryProvider, for listing all the working copies present in a given folder
- work-in-progress on http://hg.trbs.net
- in trac.conf use:
[hg-parents] bunch.dir = /path/to/parent/directory/somedir
- SvnParentDirRepositoryProvider, for listing all the Subversion repositories present in a given folder
- HgForestRepositoryProvider, for providing forest repositories and all sub-repositories managed by each forest
- currently, a default repository needs to be defined, otherwise the versioncontrol modules are disabled
fix AJAX query in annotate- extend to cached repositories
- IRepositoryProvider must have a way to signal new content, in order to rebuild the repository name cache