Parfois vous avez besoin de savoir à quel moment les branches et les étiquettes ont été séparées du trunk, et la meilleure façon de visualiser ce genre d'informations est sous la forme d'un graphique ou d'une structure arborescente. C'est à ce moment que vous devez utiliser →
Cette commande analyse l'historique des révisions et essaye de créer un arbre montrant les points auxquels les copies ont été prises et quand les branches/étiquettes ont été supprimées.
Pour générer le graphique, TortoiseSVN doit aller chercher tous les commentaires dans la racine du dépôt. Inutile de dire que cela peut prendre plusieurs minutes même avec un dépôt de seulement quelques milliers de révisions, selon la vitesse du serveur, la bande passante du réseau, etc. Si vous essayez avec quelque chose comme le projet Apache
, qui a actuellement plus de 500 000 révisions, vous pourriez attendre un moment.
La bonne nouvelle est que vous si mettez le journal en cache, vous n'aurez à attendre qu'une fois. Par la suite, ces données seront stockées localement. Ce paramètre est activé dans la configuration de TortoiseSVN.
Chaque nœud du graphe représente une révision dans le dépôt dans laquelle quelque chose a changé dans l'arborescence que vous examinez. Les différents types de nœuds peuvent être distingués par leur forme et leur couleur. Les formes sont fixes, mais les couleurs peuvent être définies à l'aide de
→Les éléments qui ont été ajoutés ou créés en copiant un autre fichier/dossier sont affichés avec un rectangle arrondi. La couleur par défaut est le vert. Les étiquettes et le trunk sont traités comme un cas particulier et utilisent une nuance différente, selon les
→ .Les éléments supprimés, p. ex. une branche qui n'est plus requise, sont affichés avec un octogone (un rectangle avec les coins coupés). La couleur par défaut est le rouge.
Les éléments renommés seront également affichés avec un octogone, mais seront de couleur bleue par défaut.
Le graphique est normalement limité aux points de branchement, mais il peut aussi être souvent utile de voir la révision HEAD respective de chaque branche. Si vous sélectionnez Afficher les révisions HEAD, chaque nœud de révision HEAD sera affiché comme une ellipse. Notez que HEAD se réfère ici à la dernière révision livrée sur ce chemin, et non à la révision HEAD du dépôt.
Si vous avez invoqué le graphique de révision à partir d'une copie de travail, vous pouvez choisir de montrer la révision BASE sur le graphique avec Montrer la révision de la copie de travail, qui marque le nœud BASE avec un contour en gras.
Si vous avez invoqué le graphique de révision à partir d'une copie de travail, vous pouvez choisir de montrer un nœud supplémentaire représentant votre copie de travail modifiée avec Afficher les modifications de la copie de travail. Il s'agit d'un nœud elliptique avec un contour en gras rouge par défaut.
Tous les autres éléments sont affichés en utilisant un rectangle ordinaire.
Notez que par défaut le graphique ne montre que les points auxquels des éléments ont été ajoutés, copiés ou supprimés. Afficher chaque révision d'un projet pourrait produire un graphique très grand pour des cas non triviaux. Si vous voulez vraiment voir toutes les révisions pour lesquelles des modifications ont été apportées, il existe une option pour ce faire dans le menu Affichage et sur la barre d'outils.
L'affichage par défaut (sans regroupement) place les nœuds de telle sorte que leur position verticale reflète l'ordre strict de révision, afin que vous ayez un repère visuel pour l'ordre dans lequel les choses ont été faites. Lorsque deux nœuds sont dans la même colonne, l'ordre est très évident. Lorsque deux nœuds sont dans des colonnes voisines, le décalage est beaucoup plus faible car il n'est pas nécessaire d'empêcher les nœuds de se chevaucher, et en conséquence l'ordre est un peu moins évident. Ces optimisations sont nécessaires pour que les graphiques complexes conservent une taille raisonnable. Veuillez noter que cette organisation utilise le bord du nœud sur l'ancien côté comme une référence, c'est à dire le bord inférieur du nœud lorsque le graphique est représenté avec le plus ancien nœud en bas. Le bord de référence est important, car les formes des nœuds n'ont pas toutes la même hauteur.
Parce qu'un graphique de révision est souvent très complexe, il existe un certain nombre de caractéristiques qui peuvent être utilisées pour adapter la façon dont vous souhaitez le voir. Celles-ci sont disponibles dans le menu Voir et à partir de la barre d'outils.
Le comportement par défaut (sans regroupement) montre toutes les lignes triées strictement par révision. En conséquence, les branches très anciennes avec des modifications clairsemées occupent une colonne entière pour seulement quelques changements et le graphe devient très large.
Ce mode groupe les changements par branche, de sorte qu'il n'y ait pas de tri global par révision : des révisions consécutives sur une branche seront (généralement) affichées sur des lignes consécutives. Les sous-branches, en revanche, sont arrangées de telle façon que les branches postérieures seront affichées dans la même colonne au-dessus des branches antérieures pour limiter la largeur du graphique. En conséquence, une ligne donnée peut contenir les changements de plusieurs révisions différentes.
Normallement, le graphique affiche les révisions les plus anciennes en bas, et l'arborescence se développe par le haut. Utilisez cette option pour que cette dernière s'affiche de haut en bas.
Lorsqu'un graphique est divisé en plusieurs petits arbres, les arbres peuvent apparaître soit dans l'ordre naturel de révision, soit alignés au bas de la fenêtre, selon que vous utilisez ou pas l'option Grouper les branches. Utilisez cette option pour développer tous les arbres du haut vers le bas.
Cette option est normalement active et évite d'afficher le graphique avec de nombreuses lignes confuses qui se croisent. Cependant, cela peut aussi faire apparaître les colonnes de l'affichage à des endroits moins logiques, par exemple en ligne diagonale plutôt qu'une colonne verticale, et cela peut nécessiter plus de place pour dessiner le graphique. Si cela pose problème, vous pouvez désactiver l'option dans le menu Affichage.
Des noms de chemin longs peuvent prendre beaucoup d'espace et rendre les cases des nœuds très large. Utilisez cette option pour afficher seulement la partie modifiée d'un chemin, en remplaçant la partie commune avec des points. Par exemple, si vous créez une branche /branches/1.2.x/doc/html
à partir de /trunk/doc/html
, la branche pourrait être affichée sous forme compacte /branches/1.2.x/..
parce que les deux derniers niveaux, doc
et html
, n'ont pas changé.
Cela fait exactement ce que vous attendiez et montre chaque révision où quelque chose (dans l'arbre que vous dessinez) a changé. Pour un long historique, cela peut produire un graphique véritablement énorme.
Cela garantit que la dernière révision de chaque branche est toujours indiquée sur le graphique.
Quand une branche / étiquette est créée, le comportement par défaut est de montrer la branche comme tirée du dernier nœud où une modification a été apportée. Strictement parlant cela est inapproprié puisque les branches sont souvent issues du HEAD courant plutôt que d'une révision spécifique. Il est donc possible de montrer la révision la plus juste (mais la moins utile) qui a été utilisé pour créer la copie. Notez que cette révision peut être plus récente que la révision HEAD de la branche source.
Quand un projet a beaucoup d'étiquettes, afficher chaque étiquette comme un nœud distinct sur le graphique prend beaucoup de place et prend le pas sur la structure de branche de développement qui est pourtant plus intéressante. En même temps, vous pouvez avoir besoin d'accéder facilement au contenu de l'étiquette pour pouvoir comparer les révisions. Cette option cache les nœuds pour les étiquettes et à la place, les affiche sur l'infobulle pour le nœud depuis lequel elles ont été copiées. Une icône d'étiquette sur le côté droit du nœud source indique que des étiquettes ont été créées. Cela simplifie grandement l'affichage.
Notez que si un tag est lui-même utilisé comme source pour obtenir une copie, peut-être une nouvelle branche basée sur un tag, alors ce tag sera affiché comme un nœud distinct plutôt que plié.
Cache les chemins qui ne sont plus présents dans la révision HEAD du dépôt, par exemple, des branches supprimées.
Si vous avez sélectionné l'option Replier les étiquettes, alors une branche effacée sur laquelle des étiquettes ont été prises sera toujours affichée, sinon les étiquettes disparaîtraient aussi. La dernière révision qui a été étiquetée sera affichée avec la couleur utilisée pour les nœuds effacés au lieu d'afficher une révision de suppression séparée.
Si vous sélectionnez l'option Masquer les balises, alors ces branches vont disparaître à nouveau puisqu'elles ne sont pas nécessaires pour afficher les étiquettes.
Cache les branches où aucun changement n'a été livré dans le fichier ou le sous-dossier respectif. Cela ne signifie pas nécessairement que la branche n'a pas été utilisée, simplement qu'aucune modification n'a été apportée à cette partie de la branche.
Marque la révision sur le graphique qui correspond à la révision de mise à jour de l'élément pour lequel vous affichez le graphique. Si vous venez de mettre à jour, ce sera HEAD, mais si d'autres personnes ont livré des changements depuis votre dernière mise à jour, votre CdT peut se retrouver à quelques révisions en-dessous. Le nœud est marqué en lui donnant un contour gras.
Si votre CdT contient des modifications locales, cette option la représente comme un nœud séparé elliptique, lié au nœud pour lequel votre CdT a été mise à jour en dernier. La couleur du contour par défaut est le rouge. Vous pouvez avoir besoin d'actualiser le graphique à l'aide de F5 pour afficher les changements récents.
Parfois, le graphique de révision contient plus de révisions que vous ne voulez en voir. Cette option ouvre une boîte de dialogue qui vous permet de restreindre la plage des révisions affichées, et de cacher des chemins particuliers par leur nom.
Si vous cachez un chemin donné et que ce nœud a des nœuds fils, les fils seront affichés comme un arbre séparé. Si vous voulez également cacher les fils, utilisez la case à cocher Supprimer le(s) sous-répertoire(s).
Lorsque le graphique contient plusieurs arbres, il est parfois intéressant d'utiliser des couleurs de fond alternées pour pouvoir les distinguer.
Affiche une petite image du graphique en entier, avec la fenêtre courante dans un rectangle que vous pouvez faire glisser. Cela vous permet de naviguer sur le graphique plus facilement. Notez que pour les très grands graphiques, l'aperçu peut devenir inutile en raison du facteur de zoom extrême et ne sera donc pas montré dans de tels cas.
Pour rendre plus facile la navigation dans un large graphe, utilisez la fenêtre Aperçu. Cela montre le graphique entier dans une petite fenêtre, avec la partie actuellement affichée en surbrillance. Vous pouvez faire glisser la zone en surbrillance pour changer la région affichée.
La date de révision, l'auteur et les commentaires sont affichés dans une info-bulle chaque fois que la souris survole une boîte de révision.
Si vous sélectionnez deux révisions (faites un clic gauche avec Ctrl), vous pouvez utiliser le menu contextuel pour afficher les différences entre ces révisions. Vous pouvez vouloir afficher les différences comme aux points de création de branche, mais le plus souvent vous voudrez afficher les différences aux points de fin de branche, c'est-à-dire à la révision HEAD.
Vous pouvez voir les différences avec un fichier de différences unifiées, qui montre toutes les différences dans un seul fichier avec un contexte minimal. Si vous optez pour Double-cliquez sur un nom de fichier pour aller chercher les deux révisions du fichier et les comparer en utilisant l'outil de comparaison visuel.
→ , vous vous retrouvez avec une liste des fichiers modifiés.Si vous faites un clic droit sur une révision, vous pouvez utiliser → pour voir l'historique.
Vous pouvez également fusionner les modifications dans la (les) révision(s) sélectionnée(s) dans une autre copie de travail. Une boîte de dialogue de sélection de dossier vous permet de choisir la copie de travail vers laquelle fusionner, mais après cela il n'y a pas de demande de confirmation, ni possibilité de mener un test de fusion. C'est une bonne idée de fusionner dans une copie de travail non modifiée afin que vous puissiez annuler les modifications si elles ne fonctionnent pas ! Cette fonctionnalité est utile si vous souhaitez fusionner les versions sélectionnées d'une branche à l'autre.
Les utilisateurs qui affichent un graphique pour la première fois peuvent être surpris par le fait que le graphique de révision montre quelque chose qui ne correspond pas au modèle auquel pense l'utilisateur. Si une révision change des copies multiples ou des branches d'un fichier ou d'un dossier, par exemple, alors il y aura plusieurs nœuds pour cette seule révision. Il est bon de commencer avec les options par défaut dans la barre d'outils et de personnaliser graphique étape par étape jusqu'à ce qu'il se rapproche de votre vision.
Toutes les options de filtre essaient de perdre le moins d'informations possible. Cela peut provoquer le changement de couleur de certains nœuds, par exemple. Chaque fois que le résultat est inattendu, annuler la dernière opération de filtrage et essayer de comprendre ce qui est particulier à cette révision ou cette branche. Dans la plupart des cas, le résultat initialement prévu de l'opération de filtrage est soit inexact soit trompeur.
Si vous voulez vérifier s'il y a de nouvelles informations sur le serveur, il vous suffit de rafraîchir la vue en utilisant F5. Si vous utilisez le cache du journal (activé par défaut), cela va vérifier les livraisons les plus récentes dans le dépôt et récupérer seulement les nouvelles. Si le cache du journal était en mode hors connexion, cela va aussi tenter de se reconnecter.
Si vous utilisez le cache du journal et que vous pensez que le contenu du message ou l'auteur a pu changer, vous devriez utiliser la boîte de dialogue du journal pour actualiser les messages dont vous avez besoin. Puisque le graphique des révisions se base sur la racine du dépôt, nous aurions à invalider intégralement le cache du journal, et le remplir à nouveau pourrait prendre un temps très long.
Il peut être difficile de naviguer dans un grand arbre et parfois vous souhaiterez en cacher certaines parties, ou le décomposer en une forêt de plus petits arbres. Si vous passez la souris sur le point où un lien entre ou sort d'un nœud, vous verrez un ou plusieurs boutons popup qui vous permettent de le faire.
Cliquez sur le bouton moins pour réduire la sous-arborescence.
Cliquez sur le bouton plus pour développer une sous-arborescence réduite. Quand une arborescence a été réduite, ce bouton reste visible pour signaler la sous-arborescence cachée.
Cliquez sur le bouton croix pour séparer la sous-arborescence et l'afficher comme une arborescence séparée.
Cliquez sur le bouton cercle pour ré-attacher une sous-arborescence préalablement séparée. Quand une arborescence a été séparée, ce bouton reste visible pour signaler qu'il y a une sous-arborescence séparée.
Cliquez sur l'arrière-plan du graphique pour le menu contextuel principal, qui offre des options pour Tout développer et Tout replier. Si aucune branche n'a été repliée ou séparée, le menu contextuel ne sera pas montré.