07.06.2014 Views

2 - Raspberry PI Community Projects

2 - Raspberry PI Community Projects

2 - Raspberry PI Community Projects

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Each specific service has its own system administration team, generally composed of volunteers<br />

who have installed it (and also frequently programmed the corresponding tools themselves).<br />

This is the case of the bug tracking system (BTS), the package tracking system (PTS), alioth.<br />

debian.org (FusionForge server, see sidebar), the services available on qa.debian.org, lintian.<br />

debian.org, buildd.debian.org, cdimage.debian.org, etc.<br />

1.3.3.3. Development Teams, Transversal Teams<br />

Unlike administrative teams, the development teams are rather widely open, even to outside<br />

contributors. Even if Debian does not have a vocation to create software, the project needs some<br />

specific programs to meet its goals. Of course, developed under a free software license, these<br />

tools make use of methods proven elsewhere in the free software world.<br />

CULTURE<br />

CVS<br />

CVS (Concurrent Versions System) is a tool for collaborative work on multiple<br />

files, while maintaining a history of modifications. The files in question are<br />

generally text files, such as a program's source code. If several people work<br />

together on the same file, cvs can only merge the alterations made if they were<br />

made to different portions of the file. Otherwise, these “conflicts” must be<br />

resolved by hand. This system manages modifications, line by line, by storing<br />

diff patches from one version to another.<br />

CVS uses a central archive (called a CVS repository) to store files and the<br />

history of their modifications (each revision is recorded in the form of a diff<br />

patch file, intended to be used on the prior version). Everyone checks out<br />

a particular version (working copy) to work on. The tool allows one to view<br />

the modifications made to the working copy (cvs diff), to record them in the<br />

central repository by creating a new entry in the versions history (cvs commit),<br />

to update the working copy to include modifications made in parallel by other<br />

uses (cvs update), and to record a particular configuration in the history in<br />

order to be able to easily extract it later on (cvs tag).<br />

CVS experts will know how to handle multiple concurrent versions of a project<br />

in development without them interfering with each other. These versions are<br />

called branches. This metaphor of a tree is fairly accurate, since a program is<br />

initially developed on a common trunk. When a milestone has been reached<br />

(such as version 1.0), development continues on two branches: the development<br />

branch prepares the next major release, and the maintenance branch<br />

manages updates and fixes for version 1.0.<br />

cvs, however, does have some limitations. It is unable to manage symbolic<br />

links, changes in file or directory names, the deletion of directories, etc. It has<br />

contributed to the appearance of more modern, and free alternatives which<br />

have filled in most of these gaps. These include, especially, subversion (svn),<br />

git, bazaar (bzr), and mercurial (hg).<br />

➨ http://subversion.tigris.org/<br />

➨ http://git-scm.com/<br />

➨ http://bazaar-vcs.org/<br />

➨ http://mercurial.selenic.com/<br />

Debian has developed little software of its own, but certain programs have assumed a starring<br />

20 The Debian Administrator's Handbook

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!