Edgewall Software
Home
Trac
Trac Hacks
Genshi
Babel
Bitten
Home
Download
Documentation
Mailing Lists
License
FAQ
Search:
Login
Preferences
Help/Guide
About Trac
Wiki
Timeline
Roadmap
Browse Source
View Tickets
New Ticket
Search
Context Navigation
+0
Start Page
Index
History
Editing TracDev/PluginDevelopment/ExtensionPoints/trac.versioncontrol.api.IRepositoryConnector
Adjust edit area height:
8
12
16
20
24
28
32
36
40
Edit side-by-side
== Extension Point : ''IRepositoryConnector'' == ||'''Interface'''||''IRepositoryConnector''||'''Since'''||0.10|| ||'''Module'''||''trac.versioncontrol.api''||'''Source'''||[source:trunk/trac/versioncontrol/api.py#/IRepositoryConnector api.py]|| The ''IRepositoryConnector'' allows components to connect Trac to repositories of new types of [VersionControlSystem version control systems]. == Purpose == Trac can be connected to Version Control systems to e.g. [TracBrowser browse files], [TracChangeset visualize changesets] or [TracRevisionLog revision logs]. Plugins can hook into the version control system to extend the set of repositories that are available in Trac. The main purpose for this interface is to allow plugins to implement support for other version control systems. (For implementing new mechanisms to ''find or register'' the repositories use [../trac.versioncontrol.api.IRepositoryProvider IRepositoryProvider] instead.) == Usage == Implementing the interface follows the standard guidelines found in [wiki:TracDev/ComponentArchitecture] and of course [wiki:TracDev/PluginDevelopment]. The main task is to return a `trac.versioncontrol.api.Repository` instance. A subclass is required to implement the abstract methods, which entails similarly subclassing the `trac.versioncontrol.api.Node` and `trac.versioncontrol.api.Changeset` abstract base classes. Instead of directly inheriting from the base classes mentioned above, you might want to support caching and use `trac.versioncontrol.cache.CachedRepository` and `trac.versioncontrol.cache.CachedChangeset` instead. == Examples == Due to the complexity of implementing a full version control system connector, no simple example can be provided here. == Available Implementations == * `tracopt.versioncontrol.svn.svn_fs.SubversionConnector` * `tracopt.versioncontrol.git.git_fs.GitConnector` * See VersionControlSystem#OtherVersioningSystems == Additional Information and References == * [apiref:trac.versioncontrol.api.IRepositoryConnector-class epydoc] * [apidoc:api/trac_versioncontrol_api#trac.versioncontrol.api.IRepositoryConnector API Reference] * See [../trac.versioncontrol.api.IRepositoryProvider trac.versioncontrol.api.IRepositoryProvider], [../trac.versioncontrol.api.IRepositoryChangeListener trac.versioncontrol.api.IRepositoryChangeListener] * [TracDev/DatabaseSchema/VersionControl Version control cache database schema] === API History * 0.10 introduced the interface (changeset:2669) * 0.11.1 added the `error` attribute (#6796) * 0.12 replaced the `authname` parameter with the `params` dictionary (changeset:9125)
Note:
See
WikiFormatting
and
TracWiki
for help on editing wiki content.
Change information
Your email or username:
E-mail address and name can be saved in the
Preferences
Comment about this change (optional):
Note:
See
TracWiki
for help on using the wiki.