Edgewall Software

Version 5 (modified by anonymous, 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.



  • r6465: initial "release" of the branch, worksforme
  • r6469: a few bug fixes

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.


  • More IRepositoryProvider components:
    • HgForestRepositoryProvider, for providing forest repositories and all sub-repositories managed by each forest
    • HgParentDirRepositoryProvider, for listing all the working copies present in a given folder
    • SvnParentDirRepositoryProvider, for listing all the Subversion repositories present in a given folder
  • 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
Note: See TracWiki for help on using the wiki.