SVNBOOK Preface What is Subversion?

Un article de Framalang Wiki.

Jump to: navigation, search

Cette page fait partie du projet Version control with subversion.


Pseudo Code Rôle Statut
Owl_Express LBT Traduction Terminé
Relecture
Validation



Sommaire

[modifier] Titre

What is Subversion?
Q'est-ce que Subversion ?

[modifier] Paragraphe 1

Subversion is a free/open-source version control system. That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data, or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine”.
Subversion est un système de gestion de version, libre et open-source. Ce qui veux dire que Subversion gère les fichiers et les répertoires ainsi que les changements que vous y apportez au fil du temps. Cela vous permet de revenir à d'anciennes versions de vos données ou d'examiner la façon dont vos données ont évoluées. De ce point de vue, beaucoup de monde pense à un système de contrôle de version comme une sorte de « machine à remonter le temps ».

[modifier] Paragraphe 2

Subversion can operate across networks, which allows it to be used by people on different computers. At some level, the ability for various people to modify and manage the same set of data from their respective locations fosters collaboration. Progress can occur more quickly without a single conduit through which all modifications must occur. And because the work is versioned, you need not fear that quality is the trade-off for losing that conduit-—if some incorrect change is made to the data, just undo that change.
Subversion peut fonctionner en réseau, cela lui permet d'être utilisé par des personnes travaillant sur des ordinateurs différents. D'une certaine manière, la possibilité de modifier et gérer le même lot de données par plusieurs personnes sur différents sites encourage 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 quant à d'éventuelles dégradations des données : si des changements inadéquats sont appliqués aux données, il suffit de les annuler.

[modifier] Paragraphe 3

Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code, and have many features that are specific to software development—such as natively understanding programming languages, or supplying tools for building software. Subversion, however, is not one of these systems. It is a general system that can be used to manage any collection of files. For you, those files might be source code—for others, anything from grocery shopping lists to digital video mixdowns and beyond.
Certains systèmes de contrôle de version 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 spécifiques du développement logiciel comme la capacité à comprendre les langages de programmation ou fournir des outils de construction/compilation de logiciel. Subversion, cependant, n'est pas l'un de ces systèmes. C'est un système généraliste qui peut être utilisé pour gérer n'importe quelle collection de fichiers. Pour vous ce sera peut-être du code source; pour d'autres n'importe quoi, de la liste des courses jusqu'au vidéos de vos vacances et même au-delà.

[modifier] Paragraphe 4

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) avait commencé à rechercher des développeurs pour écrire un remplaçant à CVS. CollabNet fournit une suite logicielle de collaboration appelée "CollabNet Enterprise Edition (CEE)" dont l'un des composant est le contrôle de version. Même si CEE utilisait CVS comme système de gestion de version initial, les limitations de celui-ci étaient évidentes depuis le début, et CollabNet savait qu'il faudrait finalement 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 contrôle de versions ex-nihilo, en conservant les idées de base de CVS, mais sans ses bogues et ses limitations fonctionnelles.

[modifier] Paragraphe 5

In February 2000, they contacted Karl Fogel, the author of Open Source Development with CVS (Coriolis, 1999), and asked if he'd like to work on this new project. Coincidentally, at the time Karl was already discussing a design for a new version control system with his friend Jim Blandy. In 1995, the two had started Cyclic Software, a company providing CVS support contracts, and although they later sold the business, they still used CVS every day at their jobs. Their frustration with CVS had led Jim to think carefully about better ways to manage versioned data, and he'd already come up with not only the name “Subversion”, but also with the basic design of the Subversion data store. When CollabNet called, Karl immediately agreed to work on the project, and Jim got his employer, Red Hat Software, to essentially donate him to the project for an indefinite period of time. CollabNet hired Karl and Ben Collins-Sussman, and detailed design work began in May. With the help of some well-placed prods from Brian Behlendorf and Jason Robbins of CollabNet, and Greg Stein (at the time an independent developer active in the WebDAV/DeltaV specification process), Subversion quickly attracted a community of active developers. It turned out that many people had had the same frustrating experiences with CVS, and welcomed the chance to finally do something about it.
En février 2000, ils contactèrent Karl Fogel, l'auteur de « Open Source Development with CVS » (Coriolis, 1999) et lui demandèrent s'il aimerait travailler sur ce nouveau projet. Il se trouve qu'au même moment Karl ébauchait la conception d'un nouveau système de contrôle de version avec son ami Jim Blandy. En 1995 ils avaient, tous deux, crée Cyclic Software, une société fournissant des contrats de support pour CVS et, bien qu'ils aient plus tard vendu la société, ils utilisaient toujours CVS quotidiennement dans leur travail. Leurs frustrations à propos de CVS avaient conduit Jim à élaborer mentalement de meilleures façons de gérer les données versionnées. Il avait déjà non seulement trouvé le nom de « Subversion » mais aussi les principes de base du stockage de données de Subversion. Quand CollabNet les appelèrent, Karl accepta immédiatement de travailler sur le projet et Jim obtint de son employeur - Red Hat Software - de le déléguer au projet pour une durée indéterminée. CollabNet embaucha Karl et Ben Collins-Sussman et le travail de spécifications détaillées commença en mai. Avec l'aide de soutiens biens placés de Brian Behlendorf et Jason Robbins de CollabNet et Greg Stein ( qui à ce moment était développeur indépendant travaillant sur les spécification du projet WebDAV/DeltaV ), Subversion attira rapidement une communauté de développeurs actifs. Il s'avéra que beaucoup avaient eu les mêmes expériences frustrantes avec CVS, et ils saisirent l'opportunité de pouvoir enfin faire quelque chose pour les résoudre.
--Owl Express 14 septembre 2007 à 09:34 (CEST): J'ai un souci sur le membre de phrase "With the help of some well-placed prods from Brian Behlendorf and Jason Robbins of CollabNet" «prods» quesaquo ?
--Penguin 14 septembre 2007 à 10:22 (CEST): Un petit tour du côté de la version italienne donne "sostenitori", ce qui me ferait traduire "prods" par "supporters", "défenseurs", "soutiens"
--Owl Express 14 septembre 2007 à 12:47 (CEST): Merci, grâce à toi j'ai traduit le membre fautif, mais je pense y revenir si personne ne me suggère mieux je trouve la phrase un peu obscure ...

[modifier] Paragraphe 6

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 s'était entendue sur quelques buts simples. Ils ne voulaient pas inventer de nouvelles méthodes de gestion de versions, ils voulaient juste corriger CVS. Ils avaient décidé 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 assez semblable à CVS pour que n'importe lequel de ses utilisateurs puisse facilement utiliser Subversion.

[modifier] Paragraphe 7

After fourteen months of coding, Subversion became “self-hosting” on August 31, 2001. That is, Subversion developers stopped using CVS to manage Subversion's own source code, and started using Subversion instead.
Le 31 août 2001, après quatorze mois de codage, Subversion devint « auto-hébergeant ». Ce qui veux dire que les développeurs de Subversion cessaient d'utiliser CVS pour gérer le propre code source de Subversion et commençaient à utiliser Subversion à la place.

[modifier] Paragraphe 8

While CollabNet started the project, and still funds a large chunk of the work (it pays the salaries of a few full-time Subversion developers), Subversion is run like most open-source projects, governed by a loose, transparent set of rules that encourage meritocracy. CollabNet's copyright license is fully compliant with the Debian Free Software Guidelines. In other words, anyone is free to download, modify, and redistribute Subversion as he pleases; no permission from CollabNet or anyone else is required.
Bien que CollabNet ait initié le projet et qu'il subventionne encore une grosse partie du travail ( Ils paient les salaires à plein temps de quelques développeurs de Subversion ) Subversion tourne comme la plupart des projets open-source; Dirigé par un jeu de règles vagues et transparentes qui encouragent la méritocratie. 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écéssaire.

[modifier] Paragraphe 9

Subversion's Features

When discussing the features that Subversion brings to the version control table, it is often helpful to speak of them in terms of how they improve upon CVS's design. If you're not familiar with CVS, you may not understand all of these features. And if you're not familiar with version control at all, your eyes may glaze over unless you first read Chapter 1, Fundamental Concepts, in which we provide a gentle introduction to version control.

Les fonctionnalités de Subversion

Pour présenter les fonctionnalités de Subversion au sujet du contrôle de version, il est souvent utile de détailler les améliorations par rapport à la conception de CVS. Si vous ne connaissez pas CVS, vous ne pourrez pas comprendre toutes ces fonctionnalités. Et si vous ne connaissez pas du tout le contrôle de version, vous risquez de sécher à moins de lire d'abord le chapitre 1, «les concepts fondamentaux», dans lesquels nous fournissons une introduction en douceur au contrôle de version.

--Hotshot92 20 novembre 2008 à 23:06 (CET): je préfère 'nager complètement' plutôt que 'sécher' qui fait interrogation écrite

[modifier] Paragraphe 10

Subversion provides:

Directory versioning

CVS only tracks the history of individual files, but Subversion implements a “virtual” versioned filesystem that tracks changes to whole directory trees over time. Files and directories are versioned.

Subversion fournit :

Le versionnage de répertoires

CVS ne permet que le suivi de l'histoire des fichiers individuels, mais Subversion implémente un système de fichiers versionné « virtuel » qui permet le suivi des changements d'arborescences de fichiers complètes à travers le temps. Les fichiers et les répertoires sont versionnés.

[modifier] Paragraphe 11

True version history

Since CVS is limited to file versioning, operations such as copies and renames—which might happen to files, but which are really changes to the contents of some containing directory—aren't supported in CVS. Additionally, in CVS you cannot replace a versioned file with some new thing of the same name without the new item inheriting the history of the old—perhaps completely unrelated—file. With Subversion, you can add, delete, copy, and rename both files and directories. And every newly added file begins with a fresh, clean history all its own.

Un véritable historique de version

Comme CVS est limité à la gestion de version de fichiers, des opérations comme la copie ou le changement de nom ( qui peuvent toujours arriver aux fichiers, mais qui sont en réalité des changement du contenu de quelques répertoires ) ne sont pas supportés par CVS. De plus, dans CVS vous ne pouvez pas remplacer un fichier versionné par quelque chose du même nom sans que cet objet n'hérite de l'histoire de l'ancien ( et peut-être complètement sans rapport ) fichier. Avec Subversion, vous pouvez ajouter, effacer, copier, et renommer à la fois des fichiers et des répertoires. Et tout fichier nouvellement ajouté commence avec une histoire vierge et qui lui est propre.

[modifier] Paragraphe 12

Atomic commits

A collection of modifications either goes into the repository completely, or not at all. This allows developers to construct and commit changes as logical chunks, and prevents problems that can occur when only a portion of a set of changes is successfully sent to the repository.

Validation atomique

Un lot de modifications ne peut être transmit au dépôt qu'entièrement ou pas du tout. Ceci permet aux développeurs de construire et valider des modifications comme des ensembles logiques, et donc d'éviter les problèmes qui pourraient survenir si une partie seulement des modifications était arrivée au dépôt avec succès.

[modifier] Paragraphe 13

Versioned metadata

Each file and directory has a set of properties—keys and their values—associated with it. You can create and store any arbitrary key/value pairs you wish. Properties are versioned over time, just like file contents.

Métadonnées versionnées

Chaque fichier et répertoire possède un lot de propriétés associées. ( des clés et leurs valeurs ) Vous pouvez créer et stocker toute paire clé/valeur arbitraire que vous voulez. Ces propriétés sont versionnées au fil du temps, au même titre que le contenu des fichiers.

[modifier] Paragraphe 14

Choice of network layers

Subversion has an abstracted notion of repository access, making it easy for people to implement new network mechanisms. Subversion can plug into the Apache HTTP Server as an extension module. This gives Subversion a big advantage in stability and interoperability, and instant access to existing features provided by that server—authentication, authorization, wire compression, and so on. A more lightweight, standalone Subversion server process is also available. This server speaks a custom protocol which can be easily tunneled over SSH.

Choix des couches réseau

Subversion accède au dépôt par des notions abstraites, ce qui permet aux utilisateurs d'implémenter facilement de nouveaux mécanismes réseau. Subversion peut se greffer au serveur HTTP Apache comme un module d'extension. Ceci fournit à Subversion un gros avantage en termes de stabilité et d'interopérabilité ainsi qu'un accès instantané aux fonctions fournies par ce serveur ( authentification, autorisation, compression des données, etc ... ) Un logiciel serveur autonome et plus léger est aussi disponible. Ce serveur dialogue via un protocole spécifique qui peut facilement être canalisé à travers SSH.

[modifier] Paragraphe 15

Consistent data handling

Subversion expresses file differences using a binary differencing algorithm, which works identically on both text (human-readable) and binary (human-unreadable) files. Both types of files are stored equally compressed in the repository, and differences are transmitted in both directions across the network.

Une gestion des données cohérente

Subversion cherche les différences entre les fichiers en utilisant un algorithme de comparaison binaire, qui fonctionne de la même façon avec des fichiers texte (lisible par un être humain) et du binaire (illisible par l'être humain). Les deux types de fichiers sont stockés compressés de la même manière dans le dépôt et les différences sont transmises dans les deux directions par le réseau.

[modifier] Paragraphe 16

Efficient branching and tagging

The cost of branching and tagging need not be proportional to the project size. Subversion creates branches and tags by simply copying the project, using a mechanism similar to a hard-link. Thus these operations take only a very small, constant amount of time.

Une dérivation et un étiquetage efficace

Le coût de dérivation et d'étiquetage ne doit pas être proportionnel à la taille du projet. Subversion crée des branches et des étiquettes tout simplement en copiant le projet, utilisant un mécanisme proche du lien physique. Par conséquent ces opérations prennent un temps très court et constant.

[modifier] Paragraphe 17

Hackability

Subversion has no historical baggage; it is implemented as a collection of shared C libraries with well-defined APIs. This makes Subversion extremely maintainable and usable by other applications and languages.

La bidouillabilité (? Capacité à être modifié ?) -> ou L'accessibilté ...

Subversion n'a pas de lourd héritage historique; il est implémenté comme une collection de librairies partagées en C avec des APIs ( interfaces de programmation ) bien définies. Ceci rend Subversion facile à maintenir et utilisable par d'autres applications et d'autres langages.
--Owl Express 19 octobre 2007 à 13:30 (CEST):

J'ai ici introduit un néologisme/barbarisme volontairement, il n'y a pas en français technique (dans le milieux des informaticiens ou je travaille) de traduction pour "Hacking" ... J'ai trouvé sur GrandDictionnaire.com « bidouillage » pour traduire "Hack" ...

Ça m'a plu. Mais je comprendais que ce ne soit pas accepté par tous ...

[modifier] Paragraphe 18

Subversion's Architecture

Figure 1, “Subversion's Architecture” illustrates a “mile-high” view of Subversion's design.

On one end is a Subversion repository that holds all of your versioned data. On the other end is your Subversion client program, which manages local reflections of portions of that versioned data (called “working copies”). Between these extremes are multiple routes through various Repository Access (RA) layers. Some of these routes go across computer networks and through network servers which then access the repository. Others bypass the network altogether and access the repository directly.

L'architecture de Subversion

Figure 1, « L'architecture de Subversion » illustre une vue a « Grosse maille » du schéma de conception de Subversion.

D'un côté nous avons un dépôt Subversion qui contient toutes vos données versionnées. De l'autre côté, il y a votre programme client Subversion, qui gère des reflets de bouts de ces données versionnées. ( appelées « copies de travail » ) Entre ces deux extrêmes il y a des chemins multiples à travers les couches d'accès au dépôt. Certains de ces chemins passent à travers les réseaux informatiques et les serveurs du réseau et ensuite au dépôt. D'autres court-circuittent le réseau entier et accèdent directement au dépôt.

[modifier] Paragraphe 19

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—there are plenty more pages in this book devoted to alleviating that confusion.

Les conposantes de Subversion

L'installation de Subversion fournit de nombreux composants. Ce qui suit est un survol rapide de ce dont vous disposez. Ne vous alarmez si certaines de ces brèves descriptions vous laissent dubitatifs; Il y a plein de pages dans ce livre pour répondre à ces doutes.

[modifier] Paragraphe 20

svn

The command-line client program.

svn

Le programme client en ligne de commande.

[modifier] Paragraphe 21

svnversion

A program for reporting the state (in terms of revisions of the items present) of a working copy.

svnversion

Un programme pour rapporter l'état d'une copie de travail. ( En termes de révision des éléments présents)

[modifier] Paragraphe 22

svnlook

A tool for directly inspecting a Subversion repository.

svnlook

Un outil qui permet d'inspecter directement dans un dépôt Subversion.

[modifier] Paragraphe 23

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.

[modifier] Paragraphe 24

svndumpfilter

A program for filtering Subversion repository dump streams.

svndumpfilter

Un programme qui permet de filtrer les flots d'export de vos dépôts.

[modifier] Paragraphe 25

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 module plugiciel pour le serveur HTTP Apache, utilisé pour rendre votre dépôt disponible pour les autres à travers un réseau.
--Hotshot92 20 novembre 2008 à 23:25 (CET): Je propose 'greffon' plutôt que 'module plugiciel'

[modifier] Paragraphe 26

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 personalisé, pouvant être lancé comme un processus démon ou pouvant être invoqué par SSH; une autre façon de rendre votre dépôt accessible aux autres à travers un réseau.

[modifier] Paragraphe 27

svnsync

A program for incrementally mirroring one repository to another over a network.

svnsync

Un programme pour synchroniser incrémentallement deux dépôts miroirs à travers un réseau.

[modifier] Paragraphe 28

Assuming you have Subversion installed correctly, you should be ready to start. The next two chapters will walk you through the use of svn, Subversion's command-line client program.
En supposant que votre installation de Subversion soit correcte, vous devriez être prêt à démarrer. Les deux prochains chapitres vont vous faire parcourir l'utilisation de svn, le client en ligne de commande de Subversion.