A chaque modification que vous faites et que vous livrez, vous devriez fournir un commentaire décrivant cette modification. De cette façon, vous pouvez par la suite comprendre quelles modifications vous avez faites et pourquoi, et vous disposez d'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 de révision et vous les présente. L'affichage est divisé en 3 panneaux.
Le panneau supérieur présente une liste de révisions où des modifications au fichier/dossier ont été livrées. Ce résumé inclut la date et l'heure, la personne qui a livré la révision et le début du commentaire.
Les lignes affichées en bleu indiquent que quelque chose a été copié vers cette ligne de développement (peut-être d'une branche).
Le panneau du milieu montre le commentaire en entier pour la révision choisie.
Le panneau du bas montre une liste de tous les fichiers et de tous les dossiers qui ont été modifiés lors de la révision sélectionnée.
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.
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é modifiées depuis votre dernière mise à jour
Si le référentiel n'est pas joignable vous verrez une fenêtre Travailler hors ligne ?, décrite dans la section intitulée « Mode hors ligne ».
Le panneau supérieur a une colonne Actions contenant des icones résumant ce qui a été fait dans cette révision. Il y a quatre icones différents, chacun est affiché dans sa propre colonne.
Si une révision modifie un élément, l'icône modifié est affichée dans la première colonne.
Si un élément a été ajouté lors d'une révision, l'icône ajouté est affichée dans la seconde colonne.
Si un élément a été supprimé dans une révision, l'icône deleted s'affiche dans la troisième colonne.
Si un élément a été remplacé, l'icône remplacé est affichée dans la quatrième colonne.
Figure 4.16. Le panneau supérieur de la boîte de dialogue du Journal de révision avec le menu contextuel

De plus amples informations sont disponibles via un menu contextuel dans la panneau supérieur de la boîte de dialogue du Journal de révision. Certains éléments de ce menu sont spécifiques aux fichiers, d'autres aux dossiers.
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 modifiés et vous permettra de passer en revue les modifications apportées à chaque fichier individuellement.
Annoter la révision sélectionnée et le fichier dans votre base de travail et comparer les résultats en utilisant un outil de différenciation. Lire la section intitulée « Annoter les différences » pour plus de détails (uniquement pour les fichiers).
Voir les modifications faites dans la révision sélectionnée en tant que fichier de différences unifiées (format de patch GNU). Cela montre seulement les différences avec quelques lignes de contexte. Cela est plus difficile à lire qu'une comparaison visuelle de fichiers, mais cela vous présentera tous les changements dans un format compact.
Compare the selected revision with the previous revision. This works in a similar manner to comparing with your working copy. For folders this option will first show the changed files dialog allowing you to select files to compare.
Show the changed files dialog allowing you to select files. Blame the selected revision, and the previous revision, and compare the results using a visual diff tool. (folders only).
Sauvegarder la révision sélectionnée dans un fichier pour avoir une version antérieure de ce fichier (valable uniquement pour les fichiers).
Ouvrir le fichier sélectionné, avec l'application par défaut pour ce type de fichier, ou avec le programme de votre choix (valable uniquement pour les fichiers).
Annoter le fichier jusqu'à la révision sélectionnée (uniquement pour les fichiers).
Ouvrir l'explorateur de référentiel pour examiner le fichier ou le dossier sélectionné dans le référentiel tel qu'il était à la révision sélectionnée.
Créer une branche ou une é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 modifications qui n'étaient pas supposées être intégrées à cette révision.
Mettre à jour votre copie de travail à la révision sélectionnée. Utile si vous voulez que votre copie de travail soit le reflet d'un état précis du passé ou s'il y a eu depuis d'autres livraisons dans le référentiel et que vous voulez mettre à jour votre copie de travail par étapes successives. Il est préférable de mettre à jour un répertoire entier de votre copie de travail, et pas seulement un fichier, autrement votre copie de travail pourrait être incohérente.
Si vous voulez annuler définitivement une modification, utilisez Revenir à cette révision.
Revenir à une révision antérieure. Si vous avez fait plusieurs modifications et décidez ensuite que vous voulez vraiment remettre les choses telles qu'elles étaient à la révision N, c'est la commande dont vous avez besoin. Les modifications sont annulées dans votre copie de travail : cette opération n'affecte donc pas le référentiel tant que vous n'avez pas livré ces changements. Notez que cela annulera toutes les modifications faites après la révision sélectionnée, remplaçant le fichier/dossier avec cette révision antérieure.
Si votre copie de travail n'a pas été modifiée, après avoir fait cette action elle sera marquée comme étant modifiée. Si vous avez déjà des modifications locales, cette commande fusionnera les modifications annulées dans votre copie de travail.
En interne, Subversion annule la fusion de toutes les modifications effectuées après la révision sélectionnée, revenant ainsi à l'état précédant ces livraisons.
Après avoir effectué cette action, si vous voulez annuler l'annulation et retrouver votre copie active dans son état précédent non-modifié, nous vous conseillons d'utiliser → à partir de Windows Explorer, ce qui aura pour effet de rejeter les modifications locales effectuées par cette action de dé-fusion.
Si vous voulez juste avoir un aperçu d'un fichier ou d'un répertoire dans une révision antérieure, utilisez Revenir à cette révision ou Sauvegarder la révision sous....
Annuler les modifications effectuées à la révision sélectionnée. Les modifications sont annulées dans votre copie de travail donc cette opération n'affecte pas du tout le référentiel ! Notez que cela annulera les modifications de cette révision seulement. Cela ne remplace pas votre copie de travail par le fichier complet de la révision précédente. C'est très utile pour annuler une modification antérieure quand d'autres modifications sans rapport ont été faites depuis.
Si votre copie de travail n'a pas été modifiée, après avoir fait cette action elle sera marquée comme étant modifiée. Si vous avez déjà des modifications locales, cette commande fusionnera les modifications annulées dans votre copie de travail.
En interne, Subversion annule la fusion de cette révision particulière, annulant l'effet d'une Livraison antérieure.
Vous pouvez annuler une annulation comme décrit ci dessus dans Revenir à cette révision.
Fusionner la (les) révision(s) sélectionnée(s) en une copie active séparée. Une boîte de dialogue de sélection de dossiers vous permet de choisir la copie active qui sera la cible de la fusion, mais attention : il n'y a par la suite aucune demande de confirmation ni aucune possibilité de faire une fusion de test. Il est judicieux de faire la fusion dans une copie active intacte afin de pouvoir annuler les modifications si cela ne fonctionne pas! Cette fonctionnalité se révèle très utile si vous désirez fusionner des révisions choisies d'une branche à une autre.
Fait une extraction propre de la révision sélectionnée. Cette fonctionnalité déclenche l'affichage d'une fenêtre permettant de confirmer l'URL, le numéro de la révision, et de sélectionner l'emplacement de l'extraction.
Exporter le fichier/répertoire sélectionné à la révision sélectionnée. Une fenêtre vous demande alors de confirmer l'URL, la révision, et de sélectionner le répertoire où faire exportation.
Éditer le commentaire de révision 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.
Voir ou éditer les propriétés d'une révision, outre le commentaire de révision et l'auteur. Voir la section intitulée « Changer le commentaire et l'auteur ».
Copier les commentaires de révisions sélectionnées dans le presse-papier. Pour chaque révision, la révision, l'auteur, la date, le commentaire et la liste des éléments modifiés seront alors copiés.
Chercher les commentaires de révision correspondant au texte que vous saisissez. La recherche s'effectue dans les commentaires de révision que vous avez saisis ainsi que dans les résumés d'action créés par Subversion (présenté dans le panneau du bas). La recherche n'est pas sensible à la casse.
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 apparaît, qui liste les fichiers modifiés et vous offre des options de comparaison avancées. Pour en savoir plus sur la comparaison de révisions, reportez-vous la section intitulée « Comparer des répertoires ».
Annoter les deux révisions et comparer les résultats en utilisant un outil de différenciation visuel. Lisez la section intitulée « Annoter les différences » pour plus de détails.
Voir les différences entre les deux révisions sélectionnées en tant que fichier de différences unifiées. Cela fonctionne pour les fichiers et les dossiers.
Copier les commentaires de révision dans le presse-papiers comme décrit ci-dessus.
Chercher les commentaires de révision comme décrit ci-dessus.
Si vous sélectionnez deux ou plusieurs révisions (en utilisant les modificateurs habituels Ctrl ou Shift), le menu contextuel inclurera une entrée pour Annuler toutes les modifications qui ont été faites dans ces révisions. C'est la façon la plus facile d'annuler un groupe de révisions en une fois.
Vous pouvez également choisir de fusionner les révisions sélectionnées dans une autre copie de travail, comme décrit ci dessus.
Si toutes les révisions sélectionnées ont le même auteur, vous pouvez éditer le champ auteur en une seule opération.
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.
Annoter la révision sélectionnée et la révision précédente pour le fichier choisi et afficher les différences en utilisant un outil de différenciation visuel. Lisez la section intitulée « Annoter les différences » pour plus de détails.
Montrer les modifications en tant que fichier de différences unifiées. Ce menu contextuel est seulement disponible pour les fichiers affichés comme Modifiés.
Ouvrir le fichier sélectionné, avec le visualisateur par défaut pour ce type de fichier ou avec le programme de votre choix.
Ouvrir la fenêtre d'annotation, vous permettant d'annoter la révision sélectionnée.
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.
Montrer les commentaires de révision pour le seul fichier sélectionné, y compris les modifications fusionnées. Plus de détail dans la section intitulée « Fonctionnalités de Suivi des Fusions ».
Sauvegarder la révision sélectionnée dans un fichier pour que vous ayez une version antérieure de ce fichier.
Vous avez peut être remarqué que nous faisons parfois référence à des modifications et parfois à des différences. Quelle différence y a-t-il ?
Subversion utilise des numéros de révision pour deux raisons. Une révision représente l'état d'un référentiel à un moment donné, mais elle peut aussi matérialiser la liste des modifications ayant mené à cette révision, i.e. « Fait dans r1234 » veux dire que l'implémentation de la fonctionalité X a été faite via les modifications livrées dans la r1234. Pour préciser quel sens est utilisé, nous utilisons deux termes différents.
Si vous sélectionnez deux révisions N et M, le menu contextuel vous permettra de voir les différences entre ces deux révisions. Dans Subversion, cette opération correspond à la commande diff -r M:N.
Si vous sélectionnez une seule révision N, le menu contextuel vous proposera d'afficher les modifications faites dans cette révision. Dans le jargon de Subversion cela se traduit par diff -r N-1:N ou diff -c N.
Le panneau du bas de la boîte de dialogue du Journal de révision présente les fichiers modifiés dans toutes les révisions sélectionnées. Le menu contextuel propose donc toujours d'afficher les modifications.
Le boîte de dialogue du Journal ne montre pas toujours toutes les modifications faites pour plusieurs raisons :
Pour un grand référentiel, il peut y avoir des centaines ou même des milliers de modifications et les parcourir toutes pourrait prendre longtemps. Normalement vous n'êtes intéressé que par les modifications les plus récentes. Par défaut, le nombre de commentaires parcourus est limité à 100, mais vous pouvez changer cette valeur dans → (la section intitulée « Configuration de TortoiseSVN »),
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 dans le 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 modifications faites 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. La raison en est que la fusion concerne le plus souvent des modifications sur des branches et que revenir au-delà de la racine de la branche n'a alors aucun sens.
Notez que Subversion implémente actuellement 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 de révision, cliquez sur le bouton 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 si vous voulez consulter 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 si vous voulez voir tous les commentaires depuis HEAD jusqu'à la révision 1.
La fenêtre de commentaires affichant les commentaires depuis HEAD et non de la révision de la copie de travail, il arrive souvent que des commentaires de révisions non encore importées dans votre copie de travail soient affichés. Pour clarifier, le message de livraison correspondant à la révision de votre copie de travail est affiché en gras.
Quand vous affichez les commentaires pour un répertoire, la révision mise en évidence est la plus élevée trouvée dans ce répertoire, ce qui nécessite un parcours de la copie de travail. Ce parcours est effectué dans un autre processus pour ne pas rallentir l'affichage des commentaires, en conséquence la mise en évidence de la révision pour les répertoires peut ne pas apparaitre immédiatement.
Le logiciel Subversion 1.5 et ultérieur
Si vous voulez voir quelles révisions ont été fusionnées dans un commit donné, utilisez la case à cocher Inclure les révisions fusionnées. Les commentaires de révision seront à nouveau affichés, mais ils inclueront également les commentaires des révisions fusionnées. Les révisions fusionnées sont affichées en gris car elles représentent des modifications effectuées dans une autre branche de l'arborescence.
Bien sûr, fusionner n'est jamais une mince affaire ! Pendant le développement des fonctionnalités dans une branche il y aura sûrement des fusions à faire avec la tête pour que la branche reste synchronisée avec la version de tête. Donc l'historique des fusions de la branche incluera une autre couche d'historique des fusions. Ces différentes couches sont affichées dans la fenêtre du journal avec une indentation différente.
Les propriétés des révisions sont complètement différentes des propriétés de Subversion de chaque élément. Les Revprops sont des éléments descriptifs qui sont associés à un numéro de révision spécifique dans le référentiel, comme les commentaires de révision, date de livraison et nom de la personne ayant livré (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 vous laisse changer les propriétés d'une révision aussi souvent que vous le souhaitez. Mais puisque de tels changements ne peuvent pas être annulés (ces changements ne sont pas versionnés) cette fonctionnalité est désactivée par défaut. Pour faire que cela fonctionne, vous devez mettre en place un hook pre-revprop-change. Veuillez vous référer au chapitre sur Hook Scripts dans le manuel de Subversion pour plus de détails sur la façon de le faire. Lisez la section intitulée « Scripts de hook côté serveur » pour plus de détails sur l'implémentation de hooks sur une machine Windows.
Une fois que vous avez mis en place votre serveur avec les hooks requis, vous pouvez changer l'auteur et le commentaire (ou toute autre revprop) de n'importe quelle révision, en utilisant le menu contextuel du panneau supérieur de la boîte de dialogue du Journal. Vous pouvez également éditer un commentaire de révision par l'intermédiaire du menu contextuel du panneau du milieu.
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.
Si vous voulez limiter les commentaires pour afficher seulement ceux qui vous intéressent, plutôt que de faire défiler une liste de centaines de commentaires, vous pouvez utiliser les commandes de filtre en haut de la boîte de dialogue du 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 n'afficher que 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 sub-string 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, or the sub-string functions. The filter works by checking whether your filter string matches the log entries, and then only those entries which match the filter string are shown.
Simple sub-string search works in a manner similar to a search engine. Strings to search for are separated by spaces, and all strings must match. You can use a leading - to specify that a particular sub-string is not found (invert matching for that term), and you can use ! at the start of the expression to invert matching for the entire expression. You can use quote marks to surround a string which must contain spaces, and if you want to search for a literal quotation mark you can use two quotation marks together as a self-escaping sequence. Note that the backslash character is not used as an escape character and has no special significance in simple sub-string searches. Examples will make this easier:
Alice Bob -Eve
searches for strings containing both Alice and Bob but not Eve
!Alice Bob
searches for strings which do not contain both Alice and Bob
!-Alice -Bob
do you remember De Morgan's theorem? NOT(NOT Alice AND NOT Bob) reduces to (Alice OR Bob).
"Alice and Bob"
searches for the literal expression « Alice and Bob »
""
searches for a double-quote anywhere in the text
"Alice says ""hi"" to Bob"
searches for the literal expression « Alice says "hi" to Bob »
Describing the use of regular expression searches is beyond the scope of this manual, but you can find online documentation and a tutorial at http://www.regular-expressions.info/.
Notez que ces filtres agissent sur les commentaires déjà récupérés. Ils ne provoquent pas de téléchargement de commentaires du référentiel.
You can also filter the path names in the bottom pane using the Show only affected paths checkbox. Affected 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. Normally the path list shows any other paths which are affected by the same commit, but in grey. If the box is checked, those paths are hidden.
Parfois, vos habitudes de travail nécessiteront que les commentaires de révision aient un format particulier, ce qui signifie que le texte résumant les modifications ne sera pas visible dans le panneau supérieur. La propriététsvn:logsummary peut être utilisée pour afficher dans le panneau supérieur une partie du commentaire de révision. Lisez la section intitulée « Propriétés du projet TortoiseSVN » pour savoir comment utiliser cette propriété.
Le formattage dépendant des propriétés d'accès de subversion, vous ne verrez le résultat que si vous utilisez une copie de travail exportée. Afficher les propriétés à distance étant une opération lente, vous ne pourrez pas l'effectuer depuis l'explorateur de référentiel.
Le bouton 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 ;-)
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.
Ce graphique vous montre quels auteurs ont été actifs sur le projet par un simple histogramme, un histogramme empilé ou un camembert.
Quand il y a quelques auteurs majeurs et beaucoup de contributeurs mineurs, le nombre de segments minuscules peut rendre le graphique plus difficile à lire. Le slider en bas vous permet de définir un seuil (en pourcentage du total des livraisons) en dessous duquel l'activité est groupée dans une catégorie Autres.
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 de quand un projet est actif et de 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 la production d'un auteur moins facile à voir.
Par défaut l'analyse est sensible à la casse donc les utilisateurs PeterEgan et PeteRegan sont considérés comme des auteurs différents. Cependant, dans de nombreux cas les noms des utilisateurs ne sont pas sensibles à la casse et sont parfois saisis de façon variable, donc vous pourriez vouloir que DavidMorgan et davidmorgan soient considérés comme la même personne. Utilisez la case à cocher Auteurs non sensibles à la casse pour contrôler la manière dont cela est traité.
Notez que les statistiques couvre la même période que la boîte de dialogue du Journal. Si elle ne montre qu'une révision alors les statistiques ne vous diront pas grand chose.
Si le serveur est inaccessible, et que vous avez activé la mise en cache des commentaires de révision, vous pouvez utiliser la boîte de dialogue du Journal et le graphique des révisions en mode hors ligne. Ces outils utiliseront alors les données mises en cache, ce qui vous permet de continuer à travailler même si les informations sont incomplètes ou ne sont pas à jour.
Vous avez ici trois choix :
Fini l'opération courante en mode hors ligne, mais réessaie avec le référentiel à la prochaine demande d'informations.
Reste en mode hors ligne jusqu'à la prochaine demande explicite de vérification. Voir la section intitulée « Refraîchissement de l'affichage ».
Si vous ne voulez pas continuer l'opération en cours avec le risque d'avoir des données bancales, annulez.
La case à cocher Définir par défaut empêche cette fenêtre de réapparaitre et retient toujours l'option suivante choisie. Vous pouvez toujours modifier (ou supprimer) cette valeur par défaut plus tard dans le menu → .
Si vous voulez vérifier si de nouveaux commentaires sont arrivés sur le serveur, vous pouvez simplement rafraîchir l'interface en appuyant sur F5. Si vous utilisez un cache pour les commentaires (ce qui est le comportement par défaut), cette vérification se fera et seuls les nouveaux commentaires seront rappatriés. Si le cache des commentaires était en mode hors ligne, il tentera de se reconnecter.
Si vous utilisez le cache du journal et si vous pensez que le contenu du message ou son auteur ont pu changer, vous pouvez utiliser Shift+F5 ou Ctrl-F5 pour récupérer à nouveau les messages affichés à partir du serveur et mettre à jour le cache journal. Notez que ceci affecte uniquement les messages affichés à cet instant et que ceci n'invalide pas le cache complet pour ce référentiel.