Repository Layout
&TCAR; is made of one central repository
and
many working copies
of that central repository.
The working copies are independent one another, can be
distributed all around the world and provide a local place for
designers, documenters, translators and programmers to perform
their work in a decentralized way. The central repository, on
the other hand, provides a common place for all independent
working copies to interchange data in the community.
The current infrastructure that holds &TCAR; is supported by
Subversion,
a version control system which allows you to keep old versions
of files and directories (usually source code), keep a log of
who, when, and why changes occurred, etc., like CVS, RCS or
SCCS and Trac,
a web-based software project management and bug/issue tracking
system emphasizing ease of use and low ceremony.
In addition to current Subversion infrastructure, we are
working on a Git infrastructure with the intention of
migrating the central repository to it, progressively. Here we
use Gitolite to manage Git repositories, Gitweb to make
changes browsable through the web and Mantis to track
repository issues. The main reason for this migration is to
take advantage of distributed version control system inside
&TCAR;. It also let people to commit changes locally, without
any network access, and later push local commits up to central
repository, when the network access be re-established. This
could be very useful in very different kind of situations.
Subversion
In this layout, the first level of directories inside &TCAR;
provides the Subversion's standard trunk-branches-tags layout.
The second level of directories provides organization for
different work lines, as described in . All other subsequent
directory levels from second level
on exist to organize specific concepts related to the work
line they belong to.
Git
In this layout, the first level of directories provides
organization for different work lines, as described in . All other subsequent
directory levels from second level on exist to organize
specific concepts related to the work line they belong to.