= Versioning System Backend = Currently, Trac is tightly integrated with [http://subversion.tigris.org Subversion]. Any given TracEnvironment addresses one and only one Subversion repository. However, nothing prevents you from setting up multiple Trac Environments on top of the same Subversion repository. This can be handy to manage separately different products which share the same code repository. == Other Versioning Systems == As mentioned in the TracHistory, Trac was inspired by [http://www.cvstrac.org CVSTrac], a project management and issue tracking system which uses CVS as its versioning system backend (and like Trac, it uses [http://www.sqlite.org SQLite] as its DatabaseBackend, which isn't surprising considering the fact that the author of CVSTrac is also the author of SQLite) ^[wiki:VersioningSystemBackend#a1 (1)]^. The versioning systems known to work with Trac are: * [http://subversion.tigris.org Subversion], which is supported by '''Trac''' out of the box, provided you have Subversion and its Python bindings installed (see TracSubversion) * [http://www.darcs.net/ Darcs], with '''Trac+Darcs''' (see [http://progetti.arstecnica.it/trac+darcs/wiki/DarcsBackend DarcsBackend], and also #638) * [http://bazaar-ng.org/ Bazaar-NG], also with '''Trac+Darcs''' since it also has support for Bazaar-NG. Contrary to Darcs support, this only works for 0.9, since the original author of Bazaar-NG support, Johan Rydberg, is not working on this any more. (see [http://progetti.arstecnica.it/trac+darcs/wiki/BzrngBackend BzrngBackend]) An attempt to support >=0.10 versions is available at https://launchpad.net/products/trac-bzr * [http://www.selenic.com/mercurial/ Mercurial], as a plugin for Trac (see TracMercurial) * [http://www.perforce.com/ Perforce], as a plugin for Trac (see [http://trac-hacks.swapoff.org/wiki/PerforcePlugin PerforcePlugin] (see also ticket #257) * If you're using something else, you're on your own... ...but it should be much easier now to add support for another backend, as of Trac [milestone:0.10] (but this is already available in the [source:trunk] version). Among other things, Subversion is not a strict requirement anymore, and there's support for pluggable backends (`IRepositoryConnector`, see TracMercurial for an example). In addition, there has been interest in the following systems: * #978: [http://svk.elixus.org SVK] support (as mentioned in that ticket, SVK ''is'' actually already supported in some way) * #893: [http://regexps.srparish.net/www/ Arch] support * #1492: [http://venge.net/monotone/ monotone] support * #2037: ClearCase support * #2643: [https://www.cvshome.org/ CVS] support * TBD: [http://www.kernel.org/pub/software/scm/git/docs/ Git] support * TBD: [http://www.darcs.net/DarcsWiki/DarcsGit darcs-git] support for darcs-git backend might also be useful. ---- ===== 1) ===== It should be mentioned that CVSTrac also aims to support more [http://www.cvstrac.org/cvstrac/wiki?p=ScmTrac SCM backends], SVN and git being worked on.