SVNBOOK Preface What is Subversion?
De Framalang Wiki.
Cette page fait partie du projet Version control with subversion.
| Pseudo | Code | Rôle | Statut |
|---|---|---|---|
| Owl_Express | LBT | Traduction | Terminé |
| SVF | 1ère relecture | Fait | |
| SVF | Mise à jour en version 1.5 et traduction | Fait | |
| Hotshot92 | Relecture | Fait | |
| Validation |
What is Subversion?
Paragraphe 1
Paragraphe 2
Subversion peut fonctionner en réseau, ce qui lui permet d'être utilisé par des personnes travaillant sur des ordinateurs différents. D'une certaine manière, la possibilité offerte à plusieurs personnes de modifier et de gérer le même ensemble de données depuis différents sites favorise la collaboration. Les choses progressent plus vite quand on évite d'avoir un canal unique à travers lequel toutes les modifications doivent passer. Et comme le travail est versionné à chaque modification, pas d'inquiétude à avoir, l'absence d'un tel canal n'a pas pour contrepartie une perte de qualité : si des changements inadéquats sont appliqués aux données, il suffit de les annuler.
Paragraphe 3
Certains systèmes de gestion de versions sont aussi des systèmes de gestion de configuration logicielle (GCL). Ces systèmes sont spécialement conçus pour gérer des arborescences de code source et possèdent de nombreuses fonctionnalités propres au développement logiciel, comme la reconnaissance des langages de programmation ou des outils de construction/compilation de logiciel. Subversion, cependant, ne fait pas partie de cette catégorie. C'est un système généraliste qui peut être utilisé pour gérer n'importe quel ensemble de fichiers. Pour vous ce sera peut-être du code source ; pour d'autres ça ira de de la liste de courses jusqu'aux vidéos des vacances et bien au-delà.
Is Subversion the Right Tool?
Is Subversion the Right Tool?
If you're a user or system administrator pondering the use of Subversion, the first question you should ask yourself is: "Is this the right tool for the job?" Subversion is a fantastic hammer, but be careful not to view every problem as a nail.
Subversion est-il l'outil approprié ?
Si, en tant qu'utilisateur ou administrateur système, vous réfléchissez à la mise en place de Subversion, la première question à vous poser est : "Est-ce que c'est l'outil adéquat pour ce que je veux faire ?". Subversion est un marteau fantastique, mais il faut faire attention à ne pas assimiler tout problème à un clou.
Paragraphe 5
If you need to archive old versions of files and directories, possibly resurrect them, or examine logs of how they've changed over time, then Subversion is exactly the right tool for you. If you need to collaborate with people on documents (usually over a network) and keep track of who made which changes, then Subversion is also appropriate. This is why Subversion is so often used in software development environments— working on a development team is an inherently social activity, and Subversion makes it easy to collaborate with other programmers. Of course, there's a cost to using Subversion as well: administrative overhead. You'll need to manage a data repository to store the information and all its history, and be diligent about backing it up. When working with the data on a daily basis, you won't be able to copy, move, rename, or delete files the way you usually do. Instead, you'll have to do all of those things through Subversion.
Si vous avez besoin d'archiver de vieilles versions de vos fichiers et dossiers, éventuellemet de les ressusciter, ou d'examiner les journaux détaillant leurs évolutions, Subversion est l'outil idéal pour vous. Si vous avez besoin de travailler sur des documents en collaboration avec d'autres personnes (habituellement via un réseau) et de conserver la trace de qui a apporté quelles modifications, Subversion fera également l'affaire. C'est pourquoi Subversion est souvent utilisé dans des environnements de développement logiciel ; travailler au sein d'une équipe de développement est par nature une activité sociale, et Subversion rend très facile la collaboration entre programmeurs. Bien sûr il existe aussi un coût lié à l'utilisation de Subversion en termes d'administration système. Vous devrez gérer un dépôt de données qui stockera les informations et tout leur historique, et vous assurer qu'il est bien sauvegardé. En travaillant au jour le jour avec les données, vous ne pourrez pas copier, déplacer, renommer ou supprimer des fichiers de la façon dont vous le faisiez auparavant. À la place, vous devrez accomplir tout ceci via Subversion.
Paragraphe 6
Assuming you're fine with the extra workflow, you should still make sure you're not using Subversion to solve a problem that other tools solve better. For example, because Subversion replicates data to all the collaborators involved, a common misuse is to treat it as a generic distribution system. People will sometimes use Subversion to distribute huge collections of photos, digital music, or software packages. The problem is that this sort of data usually isn't changing at all. The collection itself grows over time, but the individual files within the collection aren't being changed. In this case, using Subversion is “overkill.” [2] There are simpler tools that efficiently replicate data without the overhead of tracking changes, such as rsync or unison.
En supposant que cette quantité de travail supplémentaire ne vous pose pas de problème, vous devriez quand même vérifer que vous n'allez pas utiliser Subversion pour résoudre un problème que d'autres outils pourraient résoudre de manière bien plus efficace. Par exemple, parce que Subversion fournit une copie des données à tous les utilisateurs concernés, une erreur courante est de le traiter comme un système de distribution générique. Les gens utilisent parfois Subversion pour partager d'immenses collections de photos, de musique numérique ou de packs logiciels. Le problème est que ce type de donnée ne change en général jamais. La collection grandit au fil du temps, mais les fichiers individuels à l'intérieur de la collection ne changent pas. Dans ce cas, utiliser Subversion est disproportionné [2]. Il existe des outils plus simples, capables de copier des données efficacement sans s'embarasser de toute la gestion du suivi des modifications, tels que rsync ou unison.
Subversion's History
Subversion's History
In early 2000, CollabNet, Inc. (http://www.collab.net) began seeking developers to write a replacement for CVS. CollabNet offers a collaboration software suite called CollabNet Enterprise Edition (CEE), of which one component is version control. Although CEE used CVS as its initial version control system, CVS's limitations were obvious from the beginning, and CollabNet knew it would eventually have to find something better. Unfortunately, CVS had become the de facto standard in the open source world largely because there wasn't anything better, at least not under a free license. So CollabNet determined to write a new version control system from scratch, retaining the basic ideas of CVS, but without the bugs and misfeatures.L'Histoire de Subversion
Au début des années 2000, CollabNet, Inc. (http://www.collab.net) commença à rechercher des développeurs pour écrire un remplaçant à CVS. CollabNet fournit une suite logicielle collaborative appelée "CollabNet Enterprise Edition (CEE)" dont l'un des composants est la gestion de versions. Même si CEE utilisait CVS comme système de gestion de versions initial, les limitations de celui-ci étaient évidentes depuis le début, et CollabNet savait qu'il lui faudrait au final trouver quelque chose de mieux. Malheureusement, CVS était devenu le standard de fait dans le monde Open Source, essentiellement parce qu'il n'y avait rien de mieux, en tout cas sous licence libre. Donc CollabNet décida d'écrire un nouveau système de gestion de versions ex-nihilo, en conservant les idées de base de CVS, mais sans ses bogues ni ses limitations fonctionnelles.
Paragraphe 8
Paragraphe 9
The original design team settled on some simple goals. They didn't want to break new ground in version control methodology, they just wanted to fix CVS. They decided that Subversion would match CVS's features and preserve the same development model, but not duplicate CVS's most obvious flaws. And although it did not need to be a drop-in replacement for CVS, it should be similar enough that any CVS user could make the switch with little effort.
L'équipe d'origine se mit d'accord sur quelques objectifs simples. Ils ne voulaient pas inventer de nouvelles méthodes de gestion de versions, ils voulaient juste corriger ce qui n'allait pas dans CVS. Ils décidèrent que Subversion reprendrait les fonctionnalités de CVS et préserverait son modèle de développement, mais ne reproduirait pas ses faiblesses les plus évidentes. Malgré le fait que Subversion devait pouvoir avoir ses propres spécificités, il devait être suffisamment semblable à CVS pour que n'importe lequel de ses utilisateurs puisse facilement passer à Subversion.
Paragraphe 10
Paragraphe 11
Bien que CollabNet ait initié le projet, et qu'ils subventionnent encore une grosse partie du travail (en payant les salaires complets de quelques développeurs de Subversion), Subversion fonctionne comme la plupart des projets open-source, dirigé par un ensemble de règles vagues et transparentes qui encouragent la méritocratie. La licence Collabnet est parfaitement conforme aux principes du logiciel libre selon Debian ("Debian Free Software Guidelines"). Autrement dit, chacun est libre de télécharger, modifier, et redistribuer Subversion comme il le veut ; aucune autorisation de CollabNet ou de quiconque n'est nécessaire.
Subversion's Architecture
Subversion's Architecture
Figure 1, “Subversion's Architecture” illustrates a “mile-high” view of Subversion's design.
L'architecture de Subversion
La Figure 1, "Architecture de Subversion", donne une vue d'ensemble du schéma de conception de Subversion.
Paragraphe 13
Subversion's Components
Subversion's Components
Subversion, once installed, has a number of different pieces. The following is a quick overview of what you get. Don't be alarmed if the brief descriptions leave you scratching your head—plenty more pages in this book are devoted to alleviating that confusion.Les composantes de Subversion
Une fois installé, Subversion est constitué de nombreux composants. Ce qui suit est un survol rapide de ce que vous obtenez. Ne vous inquiétez pas si certaines de ces brèves descriptions vous laissent dubitatif ; ce livre contient de nombreuses pages destinées à dissiper toute confusion.Paragraphe 15
svn
- The command-line client program
svn
- Le programme client en ligne de commande
Paragraphe 16
svnversion
- A program for reporting the state (in terms of revisions of the items present) of a working copy
svnversion
- Un programme permettant d'examiner l'état d'une copie de travail (en termes de révisions des éléments présents)
Paragraphe 17
svnlook
- A tool for directly inspecting a Subversion repository
svnlook
- Un outil qui permet d'examiner directement un dépôt Subversion
Paragraphe 18
svnadmin
- A tool for creating, tweaking or repairing a Subversion repository
svnadmin
- Un outil destiné à la création, la modification ou la réparation d'un dépôt Subversion
Paragraphe 19
mod_dav_svn
- A plug-in module for the Apache HTTP Server, used to make your repository available to others over a network
mod_dav_svn
- Un greffon pour le serveur HTTP Apache, utilisé pour rendre votre dépôt disponible à d'autres à travers un réseau
Paragraphe 20
svnserve
- A custom standalone server program, runnable as a daemon process or invokable by SSH; another way to make your repository available to others over a network
svnserve
- Un serveur autonome créé sur mesure pour Subversion, pouvant fonctionner comme un processus démon ou pouvant être invoqué par SSH ; une autre façon de rendre votre dépôt accessible à d'autres à travers un réseau
Paragraphe 21
svndumpfilter
- A program for filtering Subversion repository dump streams
svndumpfilter
- Un programme qui permet de filtrer les flux d'exports de l'historique de vos dépôts
Paragraphe 22
svnsync
- A program for incrementally mirroring one repository to another over a network
svnsync
- Un programme capable de synchroniser de manière incrémentale un dépôt avec un autre dépôt à travers un réseau
What's New in Subversion
What's New in Subversion
The first edition of this book was released in 2004, shortly after Subversion had reached 1.0. Over the following four years Subversion released five major new versions, fixing bugs and adding major new features. While we've managed to keep the online version of this book up to date, we're thrilled that the second edition from O'Reilly now covers Subversion up through release 1.5, a major milestone for the project. Here's a quick summary of major new changes since Subversion 1.0. Note that this is not a complete list; for full details, please visit Subversion's web site at http://subversion.tigris.org.
Qu'est-ce qui a changé dans Subversion
La première édition de ce livre a été publiée en 2004, peu après que Subversion ait atteint la 1.0. Durant les quatre années qui suivirent, cinq nouvelles versions majeures de Subversion sont sorties, corrigeant des bogues et ajoutant de nouvelles fonctionnalités majeures. Bien que nous ayons réussi à tenir à jour la version en ligne de ce livre jusqu'à aujourd'hui, nous sommes ravis que la seconde édition de O'Reilly traite jusqu'à la version 1.5, qui correspond à une étape très importante du projet. Voici un résumé rapide des changements majeurs qui ont eu lieu depuis Subversion 1.0. Cette liste n'est pas exhaustive ; pour tous les détails, merci de vous rendre sur le site web de Subversion à l'adresse http://subversion.tigris.org.
Paragraphe 24
Subversion 1.1 (September 2004)
- Release 1.1 introduced FSFS, a flat-file repository storage option for the repository. While the Berkeley DB backend is still widely used and supported, FSFS has since become the default choice for newly created repositories due to its low barrier to entry and minimal maintenance requirements. Also in this release came the ability to put symbolic links under version control, auto-escaping of URLs, and a localized user interface.
Subversion 1.1 (Septembre 2004)
- En version 1.1 fut introduit FSFS qui permet de stocker le dépôt sous forme de fichiers textes. Bien que les bases Berkeley DB soient toujours très utilisées et supportées par la communauté, FSFS est devenu le choix par défaut pour la création de nouveaux dépôts, grâce à sa prise en main facile et à ses besoins minimes en termes de maintenance. Dans cette version ont également été ajoutées les possibilités de suivre en versions des liens symboliques et de prendre en compte automatiquement des URLs, ainsi qu'une interface utilisateur régionalisée.
Paragraphe 25
Subversion 1.2 (May 2005)
- Release 1.2 introduced the ability to create server-side locks on files, thus serializing commit access to certain resources. While Subversion is still a fundamentally concurrent version control system, certain types of binary files (e.g. art assets) cannot be merged together. The locking feature fulfills the need to version and protect such resources. With locking also came a complete WebDAV auto-versioning implementation, allowing Subversion repositories to be mounted as network folders. Finally, Subversion 1.2 began using a new, faster binary-differencing algorithm to compress and retrieve old versions of files.
Subversion 1.2 (mai 2005)
La version 1.2 introduisit la possibilité de créer des verrous sur les fichiers côté serveur, sérialisant ainsi l'accès des propagations pour certaines ressources. Bien que Subversion soit toujours fondamentalement un système de gestion de versions à accès simultanés, certains types de fichiers binaires (par exemple des images de synthèse) ne peuvent pas être fusionnés. Le mécanisme de verrouillage répond aux besoins de suivi en versions et de protection de ces données. Avec le verrouillage est également apparue une implémentation complète de l'auto-versionnement WebDAV, permettant aux dépôts Subversion d'être accessibles sous la forme de dossiers partagés sur le réseau. Enfin, Subversion 1.2 commença à utiliser un nouvel algorithme plus rapide de différenciation de données binaires pour compresser et récupérer de vieilles versions de fichiers.
Paragraphe 26
Subversion 1.3 (December 2005)
- Release 1.3 brought path-based authorization controls to the svnserve server, matching a feature formerly found only in the Apache server. The Apache server, however, gained some new logging features of its own, and Subversion's API bindings to other languages also made great leaps forward.
Subversion 1.3 (décembre 2005)
Avec la version 1.3, le serveur svnserve sait contrôler les droits en fonction des chemins, ce qui correspondait à une fonctionnalité existant uniquement à cette époque dans le serveur Apache. Cependant, le serveur Apache bénéficia lui-même de nouvelles fonctionnalités de journalisation et les API de connexion entre Subversion et d'autres langages firent également de grands pas en avant.
Paragraphe 27
Subversion 1.4 (September 2006)
- Release 1.4 introduced a whole new tool—svnsync—for doing one-way repository replication over a network. Major parts of the working copy metadata were revamped to no longer use XML (resulting in client-side speed gains), while the Berkeley DB repository backend gained the ability to automatically recover itself after a server crash.
Subversion 1.4 (septembre 2006)
En version 1.4 fut introduit un tout nouvel outil, svnsync, permettant la réplication, dans une seule direction, d'un dépôt via le réseau. Des parties importantes des métadonnées des copies de travail changèrent de format afin de ne plus utiliser XML (avec pour conséquence des gains en rapidité côté client), tandis que le gestionnaire de base de données des dépôts Berkeley DB acquit la capacité de rétablir les bases automatiquement suite à un crash du serveur.
Paragraphe 28
Subversion 1.5 (June 2008)
- Release 1.5 took much longer to finish than prior releases, but the headliner feature was gigantic: semi-automated tracking of branching and merging. This was a huge boon for users, and pushed Subversion far beyond the abilities of CVS and into the ranks of commercial competitors such as Perforce and ClearCase. Subversion 1.5 also introduced a bevy of other user-focused features, such as interactive resolution of file conflicts, partial checkouts, client-side management of changelists, powerful new syntax for externals definitions, and SASL authentication support for the svnserve server.
Subversion 1.5 (juin 2008)
- Sortir la version 1.5 prit beaucoup plus de temps que les autres versions, mais la fonctionnalité vedette était titanesque : le suivi semi-automatisé des branches et des fusions. Ce fut une véritable bénédiction pour les utilisateurs et propulsa Subversion bien au-delà des possibilités de CVS, le plaçant à la hauteur de ses concurrents commerciaux tels que Perforce et Clearcase. En version 1.5 tout un tas d'autres fonctionnalités axées sur l'utilisateur furent introduites, telles que la résolution interactive des conflits entre fichiers, les extractions partielles, la gestion des listes de modifications côté client, une nouvelle syntaxe très puissante pour les définitions externes et le support par le serveur svnserve de l'authentification par SASL.

