Livrer vos changements dans le dépôt

Envoyer les changements que vous avez faits dans votre copie de travail est appelé livrer les changements. Mais avant de livrer, vous devez vous assurer que votre copie de travail est à jour. Vous pouvez soit utiliser directement TortoiseSVNMettre à jour, soit utiliser TortoiseSVNVérifier les modifications d'abord pour voir quels fichiers ont été changés localement ou sur le serveur.

La boîte de dialogue Livrer

Si votre copie de travail est à jour et s'il n'y a aucun conflit, vous êtes prêt à livrer vos changements. Choisissez n'importe quel fichier et/ou dossier que vous voulez livrer, puis TortoiseSVNLivrer....

Figure 4.8. La boîte de dialogue Livrer

La boîte de dialogue Livrer


La boîte de dialogue Livrer vous montrera chaque fichier changé, y compris les fichiers ajoutés, supprimés et non versionnés. Si vous ne voulez pas qu'un fichier modifié soit livré, décochez ce fichier. Si vous voulez inclure un fichier non versionné, cochez ce fichier pour l'ajouter à la livraison.

Pour cocher ou décocher rapidement des catégories de fichiers, comme tous les fichiers versionnés, ou tous les fichiers modifiés, cliquez sur le lien correspondant juste au-dessus de la liste affichée des éléments modifiés.

Pour des informations sur les couleurs et les éléments supoerposés en fonction de leur statut, veuillez consulter la section intitulée « Statut local et distant ».

Les éléments qui ont été commutés vers un chemin de dépôt différent sont aussi indiqués en utilisant un marqueur (s). Vous pouvez avoir commuté quelque chose en travaillant sur une branche et avoir oublié de rebasculer sur le tronc. C'est votre signal d'alarme !

Livrer des fichiers ou des dossiers ?

Quand vous livrez des fichiers, la boîte de dialogue Livrer montre seulement les fichiers que vous avez sélectionnés. Quand vous livrez un dossier, la boîte de dialogue Livrer sélectionnera automatiquement les fichiers modifiés. Si vous oubliez un nouveau fichier que vous avez créé, livrer le dossier le trouvera de toute façon. Livrer d'un dossier ne veut pas dire que chaque fichier est marqué comme changé ; cela vous rend simplement la vie plus facile en faisant plus de travail pour vous.

Beaucoup de fichiers non versionnés dans la boîte de dialogue Livrer

Si vous pensez que la boîte de dialogue Livrer vous montre trop de fichiers non versionnés (générés par la compilation ou fichiers de sauvegarde de votre éditeur, par exemple), il y a plusieurs solutions. Vous pouvez :

  • ajouter le fichier (ou un modèle avec des caractères de remplacement) à la liste de fichiers à exclure sur la page de configuration. Cela affectera toutes vos copies de travail.

  • ajouter le fichier à la liste svn:ignore en utilisant TortoiseSVNAjouter à la liste des ignorés Cela affectera seulement le répertoire sur lequel vous mettez la propriété svn:ignore. En utilisant la boîte de dialogue de propriétés SVN, vous pouvez changer la propriété svn:ignore pour un répertoire.

  • ajouter le fichier à la liste svn:global-ignores en utilisant TortoiseSVNAjouter à la liste des ignorés (récursivement). Cela affectera le répertoire dans lequel vous positionnez la propriété svn:global-ignores, ainsi que tous ses sous-répertoires.

Lire la section intitulée « Ignorer des fichiers et des répertoires » pour plus d'informations.

Double-cliquer sur un fichier modifié dans la boîte de dialogue Livrer lancera l'outil externe de comparaison pour afficher vos changements. Le menu contextuel vous donnera plus d'options, comme affiché sur la capture d'écran. Vous pouvez aussi faire glisser les fichiers vers une autre application comme un éditeur de texte ou un IDE à partir d'ici.

Vous pouvez sélectionner ou désélectionner des éléments en cliquant sur la case à cocher située à leur gauche. Pour les répertoires, vous pouvez utiliser Maj-sélectionner pour le faire récursivement.

Les colonnes affichées dans le panneau du bas sont personnalisables. Si vous faites un clic droit sur n'importe quel en-tête de colonne, vous verrez un menu contextuel permettant de choisir quelles colonnes afficher. Vous pouvez aussi changer la largeur des colonnes en faisant glisser le bord des en-têtes. Ces personnalisations sont conservées, donc vous verrez les mêmes en-têtes la prochaine fois.

Par défaut, lorsque que vous livrez une version, tous les verrous que vous gardez sur des fichiers sont automatiquement retirés à la fin de la livraison. Si vous souhaitez conserver ces verrous, cochez la case Garder les verrous. L'état par défaut de cette case est récupéré dans le fichier de configuration de Subversion, à la clé no_unlock. Lisez la section intitulée « Configuration générale » pour plus d'informations sur l'édition du fichier de configuration de Subversion.

Avertissement en livrant dans une étiquette

Généralement, les livraisons se font dans le trunk ou dans une branche, mais pas dans une étiquette. Après tout, une étiquette est considérée comme fixe et ne devrait pas être modifiée.

Si vous essayez de faire une livraison dans l'URL d'une étiquette, TortoiseSVN affichera d'abord une boîte de dialogue de confirmation pour s'assurer que c'est bien ce que vous voulez faire, car la plupart du temps ces livraisons sont faites par erreur.

Cependant, cette vérification ne fonctionne que si la disposition du dépôt est une de celles recommandées, c'est-à-dire qu'elle utilise les noms trunk, branches et tags pour marquer les trois zones principales. Si votre disposition est différente, la détection de ce qui est une étiquette, une branche ou la branche principale (qu'on appelle aussi les tests de classification) peut se paramétrer dans la boîte de dialogue de configuration : la section intitulée « Options du Graphe des Révisions »

Glisser-déposer

Vous pouvez glisser des fichiers dans la boîte de dialogue Livrer depuis un autre emplacement, tant que les copies de travail sont extraites du même dépôt. Par exemple, supposons que vous ayez une copie de travail énorme avec plusieurs fenêtres d'explorateur ouvertes pour regarder les dossiers éloignés de la hiérarchie. Si vous voulez éviter de livrer le dossier de niveau supérieur (avec un long parcours du dossier pour vérifier les changements) vous pouvez ouvrir la boîte de dialogue de livraison pour un répertoire et y glisser des éléments depuis les autres fenêtres pour les inclure dans la même livraison atomique.

Vous pouvez faire glisser les fichiers non versionnés de votre copie de travail dans la fenêtre de livraison, ils seront alors automatiquement ajoutés au dépôt.

Glisser-déplacer des fichiers depuis la liste au bas de la boîte de dialogue de livraison vers le champ d'édition du message de journal insèrera les chemins comme texte brut dans ce champ d'édition. Cela est utile si vous voulez écrire des messages de journal de livraison qui incluent les chemins qui sont affectés par la livraison.

Réparation des renommages externes

Parfois, les fichiers sont renommés en dehors de Subversion, et sont donc affichés comme fichiers manquants et non versionnés. Pour éviter de perdre l'historique, vous devez indiquer à Subversion le lien entre les deux. Sélectionnez le nom manquant (nom précédent) et le nouveau nom (non versionné) et utilisez Menu ContextuelRéparer le déplacement pour associer les deux fichiers en tant que renommage.

Réparation des copies externes

Si vous avez fait une copie de fichier sans utiliser la commande appropriée de Subversion, vous pouvez réparer l'erreur afin que le fichier copié ne perde pas son historique. Sélectionnez juste les deux fichiers (le fichier source et le fichier copié pas encore versionné) et utilisez Menu ContextuelRéparer la copie pour associer les deux fichiers en tant que copie.

Listes de changements

La boîte de dialogue de livraison supporte la fonctionnalité de liste de changements de Subversion pour vous aider à regrouper les fichiers qui sont en lien les uns avec les autres. Pour en savoir plus sur cette fonctionnalité, voyez la section intitulée « Listes de changements ».

Livrer uniquement des morceaux de fichiers

Parfois, vous ne voulez livrer qu'une partie des changements que vous avez apportés à un fichier. Ce genre de situation se produit généralement quand vous travaillez sur quelque chose, mais qu'une correction urgente doit être livrée, et qu'il se trouve que cette correction est dans le même fichier que celui sur lequel vous êtes en train de travailler.

Faites un clic droit sur le fichier et utilisez Menu contextuelRestauration après la livraison. Cela créera une copie du fichier dans son état actuel. Ensuite vous pouvez éditer le fichier, par exemple dans un éditeur de texte, et annuler tous les changements que vous ne voulez pas livrer maintenant. Après avoir sauvegardé ces changements, vous pouvez livrer le fichier.

Utiliser TortoiseMerge

Si vous utilisez TortoiseMerge pour éditer le fichier, vous pouvez soit éditer les changements comme vous avez l'habitude de le faire, soit marquer tous les changements que vous voulez inclure. Faites un clic droit sur un bloc modifié et utiliez Menu contextuelMarquer ce changement pour inclure ce changement. Quand vous avez terminé, faites un clic droit et utilisez Menu contextuelConserver seulement les changements marqués, ce qui modifiera la vue de droite pour n'inclure que les changements que vous avez marqués auparavant et annuler les changements que vous n'avez pas marqués.

Une fois que la livraison est effectuée, la copie du fichier est restaurée automatiquement, et vous avez votre fichier avec toutes les modifications qui n'ont pas été livrées.

Exclure des éléments de la livraison

Il y a parfois des fichiers versionnés qui sont fréquemment modifiés mais que vous ne voulez vraiment pas livrer à chaque fois. Cela peut parfois indiquer un défaut dans votre processus de génération : pourquoi ces fichiers sont-ils versionnés ? Ne devriez-vous pas utiliser des fichiers templates ? Cependant, c'est parfois inévitable. Un cas typique est quand votre fichier de projet contient la date et l'heure de la dernière compilation. Le fichier de projet doit être versionné dans la mesure où il contient toutes les propriétés de compilation, mais pas nécessairement livré quand seul l'horodatage a changé.

Pour vous aider à gérer ce genre de cas problématiques, nous avons prédéfini une liste de changements appelée ignore-on-commit (« ignorer à la livraison »). Tout fichier ajouté dans cette liste sera automatiquement décoché dans la fenêtre de livraison. Vous pouvez cependant toujours livrer les modifications en cochant manuellement les fichiers à livrer dans la fenêtre de livraison.

Commentaires de livraison

Assurez-vous d'entrer un commentaire qui décrit les changements que vous livrez. Cela vous aidera à voir ce qui est arrivé et quand, lorsque vous naviguerez dans les commentaires du projet à une date ultérieure. Le message peut être aussi long ou aussi court que vous le souhaitez ; beaucoup de projets ont des directives pour ce qui devrait être inclus, la langue à utiliser et parfois même un format strict.

Vous pouvez appliquer un formatage simple à vos commentaires en utilisant une convention similaire à celle utilisée dans les e-mails. Pour appliquer un style à un texte, utilisez *texte* pour le gras, _texte_ pour souligner, et ^texte^ pour l'italique.

Figure 4.9. Le vérificateur d'orthographe de la boîte de dialogue Livrer

Le vérificateur d'orthographe de la boîte de dialogue Livrer


TortoiseSVN inclut un vérificateur d'orthographe pour vous aider à obtenir des commentaires corrects. Il mettra en évidence les mots mal orthographiés. Utilisez le menu contextuel pour avoir accès aux corrections suggérées. Bien sûr, il ne connaît pas tous les termes techniques comme vous, donc parfois les mots correctement orthographiés s'afficheront en tant qu'erreurs. Mais ne vous inquiétez pas. Vous pouvez simplement les ajouter à votre dictionnaire personnel en utilisant le menu contextuel.

La fenêtre de commentaire comprend aussi une fonctionnalité de complétion automatique de noms de fichier et de fonction. Elle utilise des expressions régulières pour extraire les noms de classe et de fonction des fichiers (texte) que vous livrez, ainsi que les noms de fichiers eux-mêmes. Si un mot que vous tapez correspond à quelque chose dans la liste (une fois que vous avez tapé au moins 3 caractères ou appuyé sur Ctrl+Espace), une liste déroulante apparaît pour vous permettre de sélectionner le nom complet. Les expressions régulières fournies avec TortoiseSVN sont contenues dans le dossier bin de l'installation de TortoiseSVN. Vous pouvez également définir vos propres expressions régulières et les stocker dans %APPDATA%\TortoiseSVN\autolist.txt. Naturellement, votre fichier autolist privé ne sera pas écrasé lors d'une mise à jour de votre installation de TortoiseSVN. Si vous n'êtes pas à l'aise avec les expressions régulières, jetez un œil à l'introduction à https://fr.wikipedia.org/wiki/Expression_r%C3%A9guli%C3%A8re. Vous pouvez également accéder à de la documentation en ligne et un tutoriel en anglais à https://www.regular-expressions.info/.

Écrire l'expression régulière parfaite peut s'avérer complexe. Pour vous aider à la trouver, il y a une boîte de dialogue de test qui vous permet de saisir une expression, puis de taper des noms de fichier pour la tester. Vous pouvez la démarrer depuis l'invite de commandes avec la commande TortoiseProc.exe /command:autotexttest.

La fenêtre de commentaire incorpore également un générateur de messages de livraison type. Ces messages type apparaissent dans la liste déroulante de complétion automatique une fois que vous tapez un raccourci de message type, et on peut ensuite insérer l'intégralité du texte du message type en sélectionnant ce message type dans la liste déroulante de complétion automatique. Les messages type fournis avec TortoiseSVN sont situés dans le dossier bin de l'installation de TortoiseSVN. Vous pouvez aussi définir vos propres messages type et les stocker dans %APPDATA%\TortoiseSVN\snippet.txt. # est la marque de commentaire. On peut insérer un retour à la ligne en l'échappant de cette façon : \n et \r. Pour insérer un antislash, il faut l'échapper de cette façon : \\.

Vous pouvez réutiliser les messages de livraison des livraisons précédentes. Cliquez juste sur Messages récents pour en voir la liste. Le nombre de messages à garder en mémoire peut être modifié dans la fenêtre de propriété de TortoiseSVN.

Vous pouvez supprimer tous les messages de livraison récents depuis la page Données sauvegardées de la fenêtre de configuration de TortoiseSVN. Vous pouvez également supprimer les messages individuellement depuis la boîte de dialogue Messages récents en utillisant la touche Suppr.

Si vous souhaitez inclure les chemins mis à jour dans votre message, vous pouvez utiliser la commande Menu ContextuelColler la liste des noms de fichier dans le champ texte.

Une autre façon d'insérer des chemins dans les commentaires est simplement de glisser/déposer les fichiers depuis la liste des fichiers dans le champ d'édition du message.

Propriétés de dossier spéciales

Il y a plusieurs propriétés de dossier spéciales qui peuvent être utilisées pour vous aider à contrôler le formatage des commentaires de livraison et la langue utilisée par le module de vérificateur d'orthographe. Lisez la section intitulée « Configuration des projets » pour plus d'informations.

Intégration aux outils de Bug tracking

Si vous avez activé le système de bugtracking, vous pouvez indiquer un ou plusieurs bugs dans le champ ID Bug / No Incident:. Les ID doivent être séparés par des virgules. Autrement, si vous utilisez un système de bugtracking utilisant les expressions régulières, ajoutez simplement les références des bugs dans le commentaire. Pour en savoir plus : la section intitulée « Intégration avec des systèmes de gestion de bug / gestion d'incidents ».

Progression de la Livraison

Après avoir appuyé sur OK, une boîte de dialogue apparaît affichant la progression de la livraison.

Figure 4.10. La boîte de dialogue de progression montrant une livraison en cours

La boîte de dialogue de progression montrant une livraison en cours


La boîte de dialogue de progression utilise un code de couleurs pour mettre en évidence les diverses actions de la livraison

Bleu

Livraison d'une modification.

Pourpre

Livraison d'un nouvel ajout.

Rouge foncé

Livraison d'une suppression ou d'un remplacement.

Noir

Tous les autres éléments.

C'est la combinaison de couleurs par défaut, mais vous pouvez personnaliser ces couleurs en utilisant la boîte de dialogue de configuration. Lisez la section intitulée « Configuration des couleurs de TortoiseSVN » pour plus d'informations.