Edgewall Software

Version 2 (modified by haui at haumacher.de, 19 years ago) ( diff )

Reorganized page to bring together arguments and counter-arguments.

Why Trac uses SQLite as its internal data store

There had been recently a discussion in the Trac mailing list why Trac uses SQLite as data store instead of the more natural approach of using a version controlled subversion repository for storage of issues and wiki pages. This pages summarizes this discussion by highlighting the arguments and referencing the original posts.

The following notation is used:

  • Introduces a new argument.
    • [-] Statement that invalidates the argument.
      • [+] Statement that reestablishes the argument by refuting the objection.

Pro SVN

  1. SQLite is space-expensive, no diffs (Alik Eliashberg).
  2. Enables the management of wiki pages outside of Trac (Alik Eliashberg)
    • [-] Removing wiki pages from outside leaves dangling references to this page (Emmanuel Blot).
      • [+] Pages can also be deleted with trac-admin leaving the same dangling references (Toni Brkic).
      • [+] Dead links are a natural feature of wikis (Alik Eliashberg).
    • [-] Editing a wiki page in an editor is non-wiki (Emmanuel Blot).
      • [+] Editor is more convenient for page creation and large changes. Wiki-Web modifications are means for community interaction (Alik Eliashberg, Toni Brkic).
      • [+] This page has been authored in Emacs to have better overview and spell checking (haui at haumacher.de).
  3. A wiki is well suited for project documentation. Project documentation is an integral part of the project and should be stored in the project repository, access should not be limited to Trac access (Denis Gervalle).
  4. Less to learn, since people installing trac are already familiar with subversion (Toni Brkic).
  5. Extra benefits from VC systems like merging/diffing with no extra cost (Toni Brkic).

Pro SQLite

  1. SVN integration would counteract support for other VC systems
    • [-] Support for other VC systems can be achieved with a backend-independent VC interface (Alik Eliashberg:)
    • [+] A backend-independent VC interface has a least common denominator problem (only features supported that are supported by all VC systems) (trac at nogga.de).
    • [-] Adding Trac support for other VC systems has the same least common denominator problem, because Trac could no longer make use of unique SVN features. There is no need for supporting other VC systems at all (trac at nogga.de).
  2. As workaround, a macro can include SVN files into wiki contents (François Harvey, Mario Ruggier, François Harvey).
  3. Trac heavily depends on SQLite and SQL (Jonas Borgström).
Note: See TracWiki for help on using the wiki.