La boîte de dialogue de Journal de révision

Pour chaque changement que vous faites et que vous livrez, vous devriez fournir un commentaire pour ce changement. De cette façon, vous pouvez plus tard découvrir quels changements vous avez fait et pourquoi et vous avez un journal détaillé pour votre processus de développement.

La boîte de dialogue du Journal de révision récupère tous ces commentaires et vous les montre. L'affichage est divisé en 3 panneaux.

Mais elle fait beaucoup plus que cela - elle fournit des commandes de menu contextuel que vous pouvez utiliser pour obtenir encore plus d'informations sur l'historique du projet.

Appeler la boîte de dialogue du Journal de révision

Figure 5.15. La boîte de dialogue de Journal de révision

La boîte de dialogue de Journal de révision


Il existe plusieurs endroits à partir desquels vous pouvez afficher la boîte de dialogue de Journal :

  • À partir du sous-menu contextuel de TortoiseSVN

  • À partir de la page de propriété

  • À partir de la boîte de dialogue de progression après qu'une mise à jour a fini. Alors la boîte de dialogue de Journal ne montre que les révisions qui ont été changées depuis votre dernière mise à jour

Revision Log Actions

The top pane has an Actions column containing icons that summarize what has been done in that revision. There are four different icons, each shown in its own column.

If a revision modified a file or directory, the modified icon is shown in the first column.

If a revision added a file or directory, the added icon is shown in the second column.

If a revision deleted a file or directory, the deleted icon is shown in the third column.

If a revision replaced a file or directory, the replaced icon is shown in the fourth column.

Obtenir des informations supplémentaires

Figure 5.16. Le parreau supérieur de la boîte de dialogue du Journal de révision avec le menu contextuel

Le parreau supérieur de la boîte de dialogue du Journal de révision avec le menu contextuel


The top pane of the Log dialog has a context menu that allows you to access much more information. Some of these menu entries appear only when the log is shown for a file, and some only when the log is shown for a folder.

  • Comparer la révision sélectionnée avec votre copie de travail. L'outil de différenciation par défaut est TortoiseMerge qui est fourni avec TortoiseSVN. Si la boîte de dialogue de journal concerne un dossier, cela vous montrera une liste de fichiers changés et vous permettra de passer en revue les changements faits à chaque fichier individuellement.

  • Voir les changements faits dans la révision sélectionnée en tant que fichier de différences unifié (format de patch GNU). Cela montre seulement les différences avec quelques lignes de contexte. Cela est plus difficile de lire qu'une comparaison de fichiers visuelle, mais cela vous montrera tous les changements ensemble dans un format compact.

  • Compare the selected revision with the previous revision. This works in a similar manner to comparing with your working copy.

  • Blame the selected revision, and the file in your working BASE and compare the blame reports using a visual diff tool. Read la section intitulée « Condamner les différences » for more detail. (files only).

  • Blame the selected revision, and the previous revision, and compare the results using a visual diff tool. (folders only).

  • Save the selected revision to a file so you have an older version of that file. (files only).

  • Open the selected file, either with the default viewer for that file type, or with a program you choose. (files only).

  • Condamner le fichier jusqu'à la révision sélectionnée (uniquement pour les fichiers).

  • Open the repository browser to examine the selected file or folder in the repository as it was at the selected revision.

  • Créer une branche/étiquette à partir d'une révision choisie. C'est utile par exemple si vous avez oublié de créer une étiquette et avez déjà livré des changements qui n'étaient pas supposés être introduits dans cette sortie.

  • Mettre à jour votre copie de travail à la révision sélectionnée. Utile si vous voulez que votre copie de travail reflète un temps passé. Il est préférable de mettre à jour un répertoire entier dans votre copie de travail, pas seulement un fichier, autrement votre copie de travail sera incohérente et vous serez incapables de livrer des modifications.

  • Revert changes from which were made in the selected revision. The changes are reverted in your working copy so this operation does not affect the repository at all! Note that this will undo the changes made in that revision only. It does not replace your working copy with the entire file at the earlier revision. This is very useful for undoing an earlier change when other unrelated changes have been made since. If you have made local changes, this command will merge these changes into your working copy.

  • Revert to an earlier revision. If you have made several changes, and then decide that you really want to go back to how things were in revision N, this is the command you need. Again, the changes are reverted in your working copy so this operation does not affect the repository until you commit the changes. Note that this will undo all changes made after the selected revision, replacing the file/folder with the earlier version. If you have made local changes, this command will merge these changes into your working copy.

  • Merge the selected revision(s) into a different working copy. A folder selection dialog allows you to choose the working copy to merge into, but after that there is no confirmation dialog, nor any opportunity to try a dry run. It is a good idea to merge into an unmodified working copy so that you can revert the changes if it doesn't work out! This is a useful feature if you want to merge selected revisions from one branch to another.

  • Make a fresh checkout of the selected folder at the selected revision. This brings up a dialog for you to confirm the URL and revision, and select a location for the checkout.

  • Export the selected file/folder at the selected revision. This brings up a dialog for you to confirm the URL and revision, and select a location for the export.

  • Éditer le commentaire ou l'auteur attaché à une précédente livraison. Lisez la section intitulée « Changer le commentaire et l'auteur » pour découvrir comment cela fonctionne.

  • Copy the log details of the selected revisions to the clipboard. This will copy the revision number, author, date, log message and the list of changed items for each revision.

  • Chercher les commentaires correspondants au texte que vous entrez. Cela recherche dans les commentaires que vous avez saisis et aussi les résumés d'action créés par Subversion (montré dans le panneau du bas). La recherche n'est pas sensible à la casse.

Figure 5.17. Menu contextuel du panneau supérieur avec 2 révisions sélectionnées

Menu contextuel du panneau supérieur avec 2 révisions sélectionnées


Si vous sélectionnez deux révisions en même temps (en utilisant le modificateur habituel Ctrl), le menu contextuel change et vous propose moins d'options :

  • Comparer les deux révisions choisies en utilisant un outil de différenciation visuel. L'outil de différenciation par défaut est TortoiseMerge qui est fourni avec TortoiseSVN.

    Si vous choisissez cette option pour un dossier, une nouvelle boîte de dialogue surgit en listant les fichiers changés et vous offre des options de comparaison avancées. Lisez plus sur la comparaison de révision dans la section intitulée « Comparer des répertoires ».

  • Blame the two revisions and compare the blame reports using a visual difference tool. Read la section intitulée « Condamner les différences » for more detail.

  • Voir les différences entre les deux révisions sélectionnées en tant que fichier de différences unifié. Cela fonctionne pour les fichiers et les dossiers.

  • Copier les commentaires dans le presse-papiers comme décrit ci-dessus.

  • Chercher les commentaires comme décrit ci-dessus.

If you select two or more revisions (using the usual Ctrl or Shift modifiers), the context menu will include an entry to Revert all changes which were made in the selected revisions. This is the easiest way to rollback a group of revisions in one go.

You can also choose to merge the selected revisions to another working copy, as described above.

Figure 5.18. Le panneau inférieur de la boîte de dialogue du Journal avec le menu contextuel

Le panneau inférieur de la boîte de dialogue du Journal avec le menu contextuel


Le panneau du bas de la boîte de dialogue Journal a aussi un menu contextuel qui vous permet de

  • Show changes made in the selected revision for the selected file. This context menu is only available for files shown as modified.

  • Blame the selected revision and the previous revision for the selected file, and compare the blame reports using a visual diff tool. Read la section intitulée « Condamner les différences » for more detail.

  • Ouvrir le fichier sélectionné, avec le visualisateur par défaut pour ce type de fichier, ou avec le programme de votre choix.

  • Annuler les changements effectués au fichier sélectionné dans cette révision.

  • Voir les propriétés Subversion pour l'élément sélectionné.

  • Afficher le journal de révision pour le seul fichier choisi.

  • Sauvegarder la révision sélectionnée dans un fichier pour que vous ayez une version précédente de ce fichier.

Astuce

You may notice that sometimes we refer to changes and other times to differences. What's the difference?

Subversion uses revision numbers to mean 2 different things. A revision generally represents the state of the repository at a point in time, but it can also be used to represent the changeset which created that revision, eg. « Done in r1234 » means that the changes committed in r1234 implement feature X. To make it clearer which sense is being used, we use two different terms.

If you select two revisions N and M, the context menu will offer to show the difference between those two revisions. In Subversion terms this is diff -r M:N.

If you select a single revision N, the context menu will offer to show the changes made in that revision. In Subversion terms this is diff -r N-1:N or diff -c N.

The bottom pane shows the files changed in all selected revisions, so the context menu always offers to show changes.

Obtenir plus de commentaires

Le boîte de dialogue du Journal ne montre pas toujours tous les changements faits pour certaines raisons :

  • For a large repository there may be hundreds or even thousands of changes and fetching them all could take a long time. Normally you are only interested in the more recent changes. By default, the number of log messages fetched is limited to 100, but you can change this value in TortoiseSVNSettings (la section intitulée « Réglages des boîtes de dialogues TortoiseSVN 1 »),

  • Quand la case Arrêt à la copie/renommage est cochée, Voir le journal s'arrêtera au moment où le fichier ou le dossier sélectionné ont été copiés d'ailleurs du référentiel. Cela peut être utile en regardant les branches (ou les étiquettes) puisque cela s'arrête à la racine de cette branche et donne une indication rapide des changements faits dans cette branche seulement.

    Normalement vous voudrez laisser cette option décochée.TortoiseSVN se souvient de l'état de la case à cocher, donc il respectera votre préférence.

    Quand la boîte de dialogue Voir le journal est appelée depuis la boîte de dialogue Fusionner, la case est toujours cochée par défaut. C'est parce que la fusion concerne le plus souvent des changements sur des branches et revenir au-delà de la racine de la branche n'a aucun sens dans ce cas.

    Notez que Subversion met actuellement en oeuvre le renommage comme une paire copie/suppression, donc renommer un fichier ou un dossier causera aussi l'arrêt de l'affichage du journal si cette option est cochée.

Si vous voulez voir plus de commentaires, cliquez sur le bouton 100 suivants pour récupérer les 100 commentaires suivants. Vous pouvez répéter cela autant de fois que nécessaire.

À côté de ce bouton il y a un bouton multi-fonctions qui se souvient de la dernière option pour laquelle vous l'avez utilisé. Cliquez sur la flèche pour voir les autres options offertes.

Utilisez Afficher la plage ... si vous voulez voir une plage spécifique de révisions. Une boîte de dialogue vous demandera alors d'entrer les révisions de début et de fin.

Utilisez Afficher tout si vous voulez voir tous les commentaires depuis HEAD jusqu'à la révision 1.

Merge Tracking Features

Subversion 1.5 and later keeps a record of merges using properties. This allows us to get a more detailed history of merged changes. For example, if you develop a new feature on a branch and then merge that branch back to trunk, the feature development will show up on the trunk log as a single commit for the merge, even though there may have been 1000 commits during branch development.

Figure 5.19. The Log Dialog Showing Merge Tracking Revisions

The Log Dialog Showing Merge Tracking Revisions

If you want to see the detail of which revisions were merged as part of that commit, use the Include merged revisions checkbox. This will fetch the log messages again, but will also interleave the log messages from revisions which were merged. Merged revisions are shown in grey because they represent changes made on a different part of the tree.

Of course, merging is never simple! During feature development on the branch there will probably be occasional merges back from trunk to keep the branch in sync with the main line code. So the merge history of the branch will also include another layer of merge history. These different layers are shown in the log dialog using indentation levels.

Changer le commentaire et l'auteur

Parfois vous pourriez vouloir changer un commentaire que vous avez saisi, peut-être parce qu'il y a une faute d'orthographe dedans ou parce que vous voulez améliorer le message ou le changer pour d'autres raisons. Ou vous voulez changer l'auteur de la livraison parce que vous avez oublié de mettre en place l'authentification ou...

Subversion lets you change both the log message and the author of revisions any time you want. But since such changes can't be undone (those changes are not versioned) this feature is disabled by default. To make this work, you must set up a pre-revprop-change hook. Please refer to the chapter on Hook Scripts in the Subversion Book for details about how to do that. Read la section intitulée « Scripts hook » to find some further notes on implementing hooks on a Windows machine.

Une fois que vous avez mis en place votre serveur avec les hooks requis, vous pouvez changer et l'auteur et le commentaire de n'importe quelle révision, en utilisant le menu contextuel du panneau supérieur de la boîte de dialogue du Journal.

Avertissement

Parce que les propriétés de révision de Subversion ne sont pas versionnées, modifier une telle propriété (par exemple, la propriété du commentaire de livraison svn:log) écrasera la valeur précédente de cette propriété pour toujours.

Filtrer les commentaires

Si vous voulez limiter les commentaires pour afficher seulement ceux qui vous intéressent, plutôt que de défiler une liste de centaines de commentaires, vous pouvez utiliser les commandes de filtre en haut de la boîte de dialogue de Journal. Les dates de début et de fin vous permettent de limiter les résultats à une plage de dates connue. La boîte de recherche vous permet de montrer seulement les messages qui contiennent une expression particulière.

Click on the search icon to select which information you want to search in, and to choose regex mode. Normally you will only need a simple text search, but if you need to more flexible search terms, you can use regular expressions. If you hover the mouse over the box, a tooltip will give hints on how to use the regex functions. You can also find online documentation and a tutorial at http://www.regular-expressions.info/.

Notez que ces filtres agissent sur les messages déjà récupérés. Ils ne provoquent pas de téléchargement de messages du référentiel.

You can also filter the path names in the bottom pane using the Hide unrelated changed paths checkbox. Related paths are those which contain the path used to display the log. If you fetch the log for a folder, that means anything in that folder or below it. For a file it means just that one file. The checkbox is tristate: you can show all paths, grey out the unrelated ones, or hide the unrelated paths completely.

Sometimes your working practices will require log messages to follow a particular format, which means that the text describing the changes is not visible in the abbreviated summary shown in the top pane. The property tsvn:logsummary can be used to extract a portion of the log message to be shown in the top pane. Read la section intitulée « TortoiseSVN Project Properties » to find out how to use this property.

Informations statistiques

Le bouton Statistiques fait apparaître une boîte montrant des informations intéressantes sur les révisions affichées dans la boîte de dialogue de Journal. Elle montre combien d'auteurs ont travaillé, combien de livraisons ils ont fait, la progression par semaine et beaucoup plus. Maintenant vous pouvez voir d'un coup d'oeil qui a travaillé le plus dur et qui se relâche ;-)

Page des statistiques

Cette page vous donne tous les nombres auxquels vous pouvez penser, en particulier la période et le nombre de révisions couvertes et quelques valeurs min/max/moyennes.

Page de livraisons par auteur

Figure 5.20. Histogramme de livraisons par auteur

Histogramme de livraisons par auteur


Ce graphique vous montre quels auteurs ont été actifs sur le projet par un simple histogramme, un histogramme empilé ou un camembert.

Figure 5.21. Camembert de livraisons par auteur

Camembert de livraisons par auteur


Where there are a few major authors and many minor contributors, the number of tiny segments can make the graph more difficult to read. The slider at the bottom allows you to set a threshold (as a percentage of total commits) below which any activity is grouped into an Others category.

Page de livraisons par date

Figure 5.22. Graphique de livraisons par date

Graphique de livraisons par date


Cette page vous donne une représentation graphique de l'activité du projet en termes de nombre de livraisons et d'auteurs. Cela donne une certaine idée quand un projet est travaillé et qui travaillait à quel moment.

Quand il y a plusieurs auteurs, vous obtiendrez beaucoup de lignes sur le graphique. Il y a deux vues disponibles ici : normale, où l'activité de chaque auteur est relative à la ligne de base et empilée, où l'activité de chaque auteur est relative à la ligne d'en dessous. La dernière option évite les lignes qui se traversent, ce qui peut rendre le graphique plus facile à lire, mais moins facile pour voir la production d'un auteur.

By default the analysis is case-sensitive, so users PeterEgan and PeteRegan are treated as different authors. However, in many cases user names are not case-sensitive, and are sometimes entered inconsistently, so you may want DavidMorgan and davidmorgan to be treated as the same person. Use the Authors case insensitive checkbox to control how this is handled.

Notez que les statistiques couvre la même période que la boîte de dialogue de Journal. Si elle ne montre qu'une révision alors les statistiques ne vous diront pas grand chose.

Offline Mode

If the server is not reachable, and you have log caching enabled you can use the log dialog and revision graph in offline mode. This uses data from the cache, which allows you to continue working although the information may not be up-to-date or even complete.

Refreshing the View

If you want to check the server again for newer log messages, you can simply refresh the view using F5. If you are using the log cache (enabled by default), this will check the repository for newer messages and fetch only the new ones. If the log cache was in offline mode, this will also attempt to go back online.

If you are using the log cache and you think the message content or author may have changed, you can use Shift-F5 or Ctrl-F5 to re-fetch the displayed messages from the server and update the log cache. Note that this only affects messages currently shown and does not invalidate the entire cache for that repository.