SVNBOOK Chap1 Subversion in Action Mixed Revision Working Copies
Un article de Framalang Wiki.
Cette page fait partie du projet Version control with subversion.
| Pseudo | Code | Rôle | Statut |
|---|---|---|---|
| Penguin | Traduction | Terminé | |
| Relecture | |||
| Validation |
Sommaire |
[modifier] Titre
[modifier] Paragraphe 1
[modifier] Paragraphe 2
Updates and Commits are Separate
One of the fundamental rules of Subversion is that a “push” action does not cause a “pull”, nor the other way around. Just because you're ready to submit new changes to the repository doesn't mean you're ready to receive changes from other people. And if you have new changes still in progress, then svn update should gracefully merge repository changes into your own, rather than forcing you to publish them.Mises à jour et Livraisons sont Séparées
Une des règles fondamentales de Subversion est que l'action de "pousser" ne déclenche pas une action de "tirer", ni l'inverse. Le simple fait que vous soyez prêt à soumettre vos nouvelles modifications au dépôt ne veut pas dire que vous êtes prêts à recevoir les modifications d'autres personnes. Et si vous avez encore de nouvelles modifications en cours, alors svn update va gracieusement fusionner les changements du dépôt avec les votres, plutôt que de vous forcer à les publier.[modifier] Paragraphe 3
[modifier] Paragraphe 4
Par exemple, supposons que vous avez une copie de travail intégralement à la révision 10. Vous éditez le fichier foo.html et réaliser ensuite un svn commit, qui crée la révision 15 dans le dépôt. Après que la livraison a réussi, beaucoup de nouveaux utilisateurs s'attendraient à ce que toute la copie de travail soit à la révision 15, mais ce n'est pas le cas!
N'importe quelle quantité de modification peut avoir être effectuée dans le dépôt entre les révisions 10 et 15. Le client ne sait rien de ces changements dans le dépôt, puisqu'il n'a pas encore exécuté la commande svn update, et la commande svn commit ne récupére pas les nouvelles modifications. D'un autre côté, si la commande svn commit téléchargé automatiuquement les modifications les plus récentes, alors il serait possible d'avoir toute la copie de travail à la révision 15, mais dans ce cas, nous enfreindrions la règle fondamentale que "pousser" et "tirer" restent des actions séparés. Ainsi, la seul chose que le client Subversion peut faire en toute sécurité est de marquer le seul fichier foo.html comme étant à la révision 15. Le reste de la copie de travail reste à la révision 10. Seule l'exécution de la commande svn update permet de récupérer les dernières modificationset de marquer la copie de travail à la révision 15.[modifier] Paragraphe 5
Mixed revisions are normal
The fact is, every time you run svn commit, your working copy ends up with some mixture of revisions. The things you just committed are marked as having larger working revisions than everything else. After several commits (with no updates in-between) your working copy will contain a whole mixture of revisions. Even if you're the only person using the repository, you will still see this phenomenon. To examine your mixture of working revisions, use the svn status --verbose command (see the section called “See an overview of your changes” for more information.)Des révisions mélangées sont normales
Le fait est que, à chaque fois que vous exécutez la commande svn commit, votre copie de travail se retrouve avec un mélange de révisions. Les éléments que vous venez juste de publier sont marqués comme ayant un numéro de révision supérieur à tous les autres. Après plusieurs livraison (sans mise à jour entre-temps), votre copie de travail va contenir tout un mélange de révisions. Même si vous êtes la seule personne à utiliser le dépôt, vous constaterez quand même ce phénoméne. Pour étudier ce mélange de révisions de travail, utilisez la commande svn status --verbose (voir la section "Avoir un aperçu de vos modifications" pour plus d'informations.[modifier] Paragraphe 6
[modifier] Paragraphe 7
Mixed revisions are useful
If your project is sufficiently complex, you'll discover that it's sometimes nice to forcibly backdate (or, update to a revision older than the one you already have) portions of your working copy to an earlier revision; you'll learn how to do that in Chapter 2, Basic Usage. Perhaps you'd like to test an earlier version of a sub-module contained in a subdirectory, or perhaps you'd like to figure out when a bug first came into existence in a specific file. This is the “time machine” aspect of a version control system—the feature which allows you to move any portion of your working copy forward and backward in history.Un mélange de révisions est utile
Si votre projet est suffisamment complexe, vous allez découvrir qu'il est parfois pratique de forcer un retour en arrière (c'est à dire faire une mise à jour vers une version plus anciennes que celle que vous avez déjà) sur certaines parties de votre copie de travail vers des révisions plus anciennes; vous apprendrez comme le faire dans le chapitre 2, Utilisation de Base. Peut-être que vous aimeriez tester une version précédente d'un sous-module contenu dans un répertoire, ou peut-être que vous aimeriez comprendre comme un bogue est pour la première apparu dans un ficher spécifique. C'est le côté "machine à voyager dans le temps" d'un système de gestion de version, la fonctionnalité qui vous permet de déplacer n'importe quelle partie de votre copie de travail en avant ou en arrière dans le temps.[modifier] Paragraphe 8
Mixed revisions have limitations
However you make use of mixed revisions in your working copy, there are limitations to this flexibility.Le mélange de révision possède des limitations
Quelque soit la façon dont vous utilisez le mélange de révision dans votre copie de travail, il existe des limitations à cette flexibilité.
