Edgewall Software

Version 9 (modified by chris.c.hoffman@…, 14 years ago) ( diff )

Multiple Projects using Multiple Trac Environments

This is the traditional way of handling multiple projects with Trac: create a new environment for tracking a given software project.

That way, each project is managed independently from the others. This can be achieved using mod_python and tracd. Further technical documentation about the setup can be found in TracMultipleProjects.

A use case is described in this comment.

This page is for discussing open points related to using multiple environments for managing multiple projects, and for contrasting this approach to an alternative approach described in TracMultipleProjects/SingleEnvironment.

Note that the two approaches are actually complementary. In some situations it will make sense to go with multiple environments, in some others, keeping all projects in a single environment would be preferred.

Referencing resources located in one project from another project can be done in both cases by using InterTrac links.

One or Multiple Repositories?

It is straightforward to manage multiple repositories using this approach: as each environment is based on a given (Subversion) repository, simply create an environment for each repository, as required.

However, there are two situations that are quite common and are currently not well addressed:

  1. the different repositories are within the same company or team (e.g. one repository for some legacy application, one for new applications, one for the common components, …) and there is a need to have some kind of integration between the projects
  2. there's only one repository actually, containing many projects
    • First expressed in #586, having been reiterated several times since (#1025, #1059, #1398). Since [1413] (the new versioncontrol layer), there is actually support for working on a subset of a repository,

It is however planned to add support for multiple repository within a single project (#2086), so that the current requirement to use multiple environments when having multiple repositories will be lifted.

You can also use a system like git, which handles decentralized development quite well.

Aggregate Reports

Since each project has its own database, it's difficult to get an overview of activity for all (or a set of) projects.

One option to help with this is TracMultipleProjects/MultipleEnvironmentsSingleDatabase

See also: TracMultipleProjects, TracHacks:TracForgePlugin, VcRefactoring#SupportforMultipleRepositories

Note: See TracWiki for help on using the wiki.