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.
Le panneau supérieur montre une liste de révisions où des changements au fichier/dossier ont été livrés. 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é changé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é changé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émente 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 parreau 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 partie du haut de la fenêtre de log. Des éléments de ce menu sont spécifiques aux fichiers ou 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 changés et vous permettra de passer en revue les changements faits à chaque fichier individuellement.
Annote la révision sélectionnée et le fichier dans votre base de travail et compare les résultats en utilisant un outil de différenciation. Lisez la section intitulée « Annoter les différences » pour plus de détails (uniquement pour les fichiers).
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. 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 que vous ayez une version précédente de ce fichier. (juste valable 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 dossier sélectionné dans le référentiel tel qu'il était à la révision sélectionnée.
Create a branch or tag from a selected revision. This is useful e.g. if you forgot to create a tag and already committed some changes which weren't supposed to get into that release.
Update your working copy to the selected revision. Useful if you want to have your working copy reflect a time in the past, or if there have been further commits to the repository and you want to update your working copy one step at a time. It is best to update a whole directory in your working copy, not just one file, otherwise your working copy could be inconsistent.
Si vous voulez annuler définitivement une modification, utilisez Revenir à cette révision.
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. The changes are undone 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.
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.
What is happening internally is that Subversion performs a reverse merge of all the changes made after the selected revision, undoing the effect of those previous commits.
If after performing this action you decide that you want to undo the undo and get your working copy back to its previous unmodified state, you should use → from within Windows Explorer, which will discard the local modifications made by this reverse merge action.
Si vous voulez juste avoir un aperçu d'un fichier ou d'un répertoire dans une révision antérieure, utilisez Mettre à jour à la révision ou Sauvegarder la révision sous....
Undo changes from which were made in the selected revision. The changes are undone 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.
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.
What is happening internally is that Subversion performs a reverse merge of that one revision, undoing its effect from a previous commit.
Vous pouvez annuler une annulation comme décrit ci dessus dans Revenir à cette révision.
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 test merge. 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.
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 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 message d'information et l'auteur. Voir la section intitulée « Changer le commentaire et l'auteur ».
Copier les commentaires des 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 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.
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 ».
Annote les deux révisions et compare les résultats en utilisant un outil de différenciation. 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é. 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.
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 auteurs, vous pouvez éditer leur 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. 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 « Annoter les différences » for more detail.
Show file changes in unified diff format. This context menu is only available for files shown as modified.
Ouvrir le fichier sélectionné, avec le visualisateur par défaut pour ce type de fichier, ou avec le programme de votre choix.
Ouvre la fenêtre de bannissement, vous permettant de bannir 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.
Montre les messages d'information 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 précédente de ce fichier.
Vous avez peut être remarqué que nous faisons parfois référence à des modifications et parfois à des différences. Quelles sont les différences ?
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é, 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 connaitre le sens d'une révision, 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.
The bottom pane shows the files changed in all selected revisions, so the context menu always offers to show changes.
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 → (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 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 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 si vous voulez voir tous les commentaires depuis HEAD jusqu'à la révision 1.
Because the log dialog shows you the log from HEAD, not from the current working copy revision, it often happens that there are log messages shown for content which has not yet been updated in your working copy. To help make this clearer, the commit message which corresponds to the revision you have in your working copy is shown in bold.
When you show the log for a folder the revision highlighted is the highest revision found anywhere within that folder, which requires a crawl of the working copy. This can be a slow operation for large working copies, and the log messages are not displayed until the crawl completes. If you want to disable or limit this feature you need to set a registry key HKCU\Software\TortoiseSVN\RecursiveLogRev as described in la section intitulée « Réglages dans le registre ».
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.
Si vous voulez voir quelles révisions ont été fusionnées dans un commit donné, utilisez la case à cocher Inclure les révisions fuisionnées. Les messages de log seront affichés de nouveau, mais ils inclueront à présent les messages des révisions fusionnées. Les révisions fusionnées sont affichées en gris car elles représentent des modifications effectuées dans un 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 de log 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 messages d'information, date de livraison et nom de la personne ayant livrés (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 revision properties 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 de hook côté serveur » to find some further notes on implementing hooks on a Windows machine.
Once you've set up your server with the required hooks, you can change the author and log message (or any other revprop) of any revision, using the context menu from the top pane of the Log dialog. You can also edit a log message using the context menu for the middle pane.
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 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.
Cliquez sur l'icone de recherche pour sélectionner le type d'information que vous souhaitez rechercher, et choisir le mode regex. Vous ne devriez avoir besoin que d'une simple recherche de texte, mais si vous souhaitez plus de flexibilité, vous pouvez alors utiliser les expressions regulières. Si vous passez la souris au dessus de la boite, une tooltip vous donnera des informations sur comment utiliser les fonctions d'expressions regulières. Vous pouvez également trouver l'aide en ligne et un tutoriel à cette adresse http://www.regular-expressions.info/. Seuls les messages de log passant le filtre (i.e. qui matchent le filtre) sont affichés.
Pour faire en sorte que tous les messages ne vérifiant pas le filtre s'affichent, commencez l'expression régulière par un point d'exclamation ('!'). Par exemple, la chaine !username ne montrera que les entrées n'ayant pas été livrés par username.
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.
Parfois, vos habitudes de travail nécessiteront que les messages de log 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 message de log. Lisez la section intitulée « Propriétés du projet TortoiseSVN » pour savoir comment utiliser cette propriété.
Because the formatting depends upon accessing subversion properties, you will only see the results when using a checked out working copy. Fetching properties remotely is a slow operation, so you will not see this feature in action from the repo browser.
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.
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.
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.
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.
Vous avez ici trois choix :
Finissez 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 « Refraichissement 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 choisit toujours l'option suivant. Vous pouvez toujours modifier (ou supprimer) cette valeur par défaut plus tard dans le menu → .
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.