SVNBOOK Chap4 Branching and Merging Basic Merging Changesets
De Framalang Wiki.
Cette page fait partie du projet Version control with subversion.
| Pseudo | Code | Rôle | Statut |
|---|---|---|---|
| Sub Versif | SVF | Traduction | Terminé |
| Hotshot92 | Relecture | Fait | |
| Validation |
Sommaire |
Titre
Changesets
Ensembles de modifications
Paragraphe 1
Before we proceed further, we should warn you that there's going to be a lot of discussion of “changes” in the pages ahead. A lot of people experienced with version control systems use the terms “change” and “changeset” interchangeably, and we should clarify what Subversion understands as a changeset.
Avant que nous n'allions plus loin, nous devrions vous avertir que les pages suivantes contiendront de nombreuses discussions portant sur les "modifications". Beaucoup de gens ayant de l'expérience dans les systèmes de gestion de versions utilisent le terme "modifications" et le terme "ensemble de modifications" de façon interchangeable, et nous allons donc clarifier ce que Subversion entend par "ensemble de modifications".
Paragraphe 2
Everyone seems to have a slightly different definition of changeset, or at least a different expectation of what it means for a version control system to have one. For our purposes, let's say that a changeset is just a collection of changes with a unique name. The changes might include textual edits to file contents, modifications to tree structure, or tweaks to metadata. In more common speak, a changeset is just a patch with a name you can refer to.
Tout le monde semble avoir sa propre définition, variant légèrement, d'un ensemble de modifications, ou tout du moins une attente différente de ce qu'un système de gestion de versions peut entendre par là. En ce qui nous concerne, disons qu'un ensemble de modifications n'est qu'un simple regroupement de modifications identifié par un nom unique. Les modifications peuvent inclure des changements textuels du contenu de fichiers, des modifications de l'arborescence, ou des ajustements portant sur les méta-données. En langage plus courant, un ensemble de modifications n'est qu'un correctif avec un nom auquel vous pouvez vous référer.
Paragraphe 3
In Subversion, a global revision number N names a tree in the repository: it's the way the repository looked after the Nth commit. It's also the name of an implicit changeset: if you compare tree N with tree N−1, you can derive the exact patch that was committed. For this reason, it's easy to think of revision N as not just a tree, but a changeset as well. If you use an issue tracker to manage bugs, you can use the revision numbers to refer to particular patches that fix bugs—for example, “this issue was fixed by r9238.” Somebody can then run svn log -r 9238 to read about the exact changeset that fixed the bug, and run svn diff -c 9238 to see the patch itself. And (as you'll see shortly) Subversion's svn merge command is able to use revision numbers. You can merge specific changesets from one branch to another by naming them in the merge arguments: passing -c 9238 to svn merge would merge changeset r9238 into your working copy.
Dans Subversion, un numéro de révision globale N désigne une arborescence dans le dépôt : c'est ce à quoi le dépôt ressemblait après la N-ème propagation. C'est aussi le nom d'un ensemble de modifications implicite : si vous comparez l'arborescence N avec l'arborescence N-1, vous pouvez en déduire exactement le correctif qui a été propagé. Pour cette raison, il est facile de se représenter une révision N non seulement comme une arborescence, mais aussi comme un ensemble de modifications. Si vous utilisez un système de gestion des incidents pour gérer vos bogues, vous pouvez utiliser les numéros de révision pour vous référer à des correctifs particuliers permettant de résoudre des bogues - par exemple, "cet incident a été corrigé par r9238." Quelqu'un peut alors lancer svn log -r 9238 pour lire le détail des modifications qui ont corrigé le bogue, et lancer svn diff -c 9238 pour voir le correctif lui-même. Et (comme vous le verrez bientôt) la commande svn merge de Subversion est capable d'utiliser les numéros de révision. Vous pouvez fusionner des listes de modifications spécifiques d'une branche à une autre en les nommant dans les paramètres de merge : donner comme argument -c 9238 à svn merge fusionnerait la liste de modifications r9238 avec votre copie de travail.

