Edgewall Software

Trac Version Control System API

Trac uses a thin abstraction layer between the Trac application code and the code that accesses concrete version control systems. This layer can be found in the trac.versioncontrol package.

Accessing the Version Control System

You can get access to a concrete Repository implementation using the get_repository() method of the Environment object:

from trac.env import Environment

env = Environment('/path/to/projenv')
repos = env.get_repository()
try:
    # Do whatever you like with the repository object here
finally:
    repos.close()

From Trac 0.12 env.get_repository() is deprecated, replaced by the RepositoryManager interface. The above code becomes:

from trac.env import Environment
from trac.versioncontrol import RepositoryManager

env = Environment('/path/to/projenv')
repos = RepositoryManager(env).get_repository(None)
try:
    # Do whatever you like with the repository object here
finally:
    repos.close()

To access a repository other than the default pass a reponame in place of None. In class that inherits from Component it is more convenient to use self.env than instantiate Environment manually.


See also: TracDev

Last modified 7 years ago Last modified on Sep 15, 2010, 12:20:28 AM
Note: See TracWiki for help on using the wiki.