Livrer vos changements au référentiel

Envoyer les changements que vous avez faits dans votre copie de travail est connue comme 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. Ou vous pouvez 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êts à 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 juste ce fichier. Si vous voulez inclure un fichier non versionné, cochez juste ce fichier pour l'ajouter à la livraison.

Les éléments qui ont été commutés vers un chemin de référentiel 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 choisis. Quand vous livrez un dossier, la boîte de dialogue Livrer choisira les fichiers modifiés automatiquement. Si vous oubliez un nouveau fichier que vous avez créé, livrer le dossier le trouvera de toute façon. La livraison d'un dossier ne veut pas dire que chaque fichier est marqué comme changé ; il rendre juste votre vie plus facile en faisant plus de travail pour vous.

Si vous avez modifié des fichiers qui ont été inclus à partir d'un référentiel différent en utilisant svn:externals, ces changements ne peuvent pas être inclus dans la même livraison atomique. Un symbole d'avertissement au-dessous de la liste de fichier vous indique si cela se produit et l'info-bulle explique que ces fichiers externes doivent être livrés séparément.

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

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

  • ajouter le fichier (ou une extension de caractère de remplacement) à la liste de fichiers pour 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.

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 différenciation pour afficher vos changements. Le menu contextuel vous donnera plus d'options, comme affiché sur la capture d'écran. Vous pouvez aussi glissez 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 à coser située à leur gauche. Pour les répertoires, vous pouvez utiliser Shift-sélectionner pour le faire récursivement.

Les colonnes affichées dans le panneau du bas sont personnalisables. Si vous faites un click 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 entêtes. Ces personnalisations sont gardées, donc vous verrez les mêmes en-tête 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.

Glisser-déposer

Vous pouvez glisser des fichiers dans la boîte de dialogue Livrer d'ailleurs, tant que les copies de travail sont extraites du même référentiel. Par exemple, vous pouvez avoir 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 des 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 référentiel.

Réparation des renommages externes

Parfois, les fichiers sont renommés en dehors de Subversion, et son donc affichés comme fichiers manquants et non versionnés. Pour éviter de perdre l'historique vous devez indiquer à Subversion la connexion. Sélectionnez le nom manquant (nom précédent) et le nouveau et utilisez Menu ContextuelRéparer le Déplacement pour associer les deux fichiers au 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.

Listes de changements

La fenêtre de livraison supporte la fonctionnalité liste des modifications de Subversion et s'en sert pour grouper les fichiers. Pour en savoir plus sur cette fonctionnalité vois la section intitulée « Listes de changements ».

Exclude des éléments de la livraison

Parfois des fichiers sont fréquemment modifiés mais vous ne voulez pas vraiment en faire la livraision. Cela peut montrer une faille dans votre environnement de travail - Pourquoi ces fichiers sont-ils versionnés ? Ne devriez vous pas utiliser des fichiers templates ? Cependant, c'est parfois inévitable. Une cause classique est que 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é vu que seul ce timestamp a changé.

Pour améliorer le traitement de cas bizarres, nous avons créé une liste de modification appelée 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 emails. Pour appliquer un style au text, 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 inclut aussi une fonctionnalité d'auto-achèvement des noms de fichier et des fonctions. Elle utilise des expressions régulières pour extraire les noms des fonctions et des classes à partir des fichiers (texte) que vous livrez, ainsi que des noms de fichier eux-mêmes. Si vous tapez un mot qui correspond à quoi que ce soit dans la liste (après avoir tapé 3 caractères ou avoir appuyé sur la touche Ctrl+Space), une liste déroulant apparaît vous permettant de compléter le nom. Les expressions régulières fournies avec TortoiseSVN sont contenues dans le répertoire bin de l'installation de TortoiseSVN. Vous pouvez aussi définir vos propres regexes et les stocker dans %APPDATA%\TortoiseSVN\autolist.txt. Bien sûr cette liste privée ne sera pas écrasée quand vous mettrez à jour votre installation de TortoiseSVN. Si vous n'êtes pas à l'aise avec l'utilisation des expressions régulières, jetez un coup d'oeil à l'introduction http://en.wikipedia.org/wiki/Regular_expression et à la documentation en ligne et au tutoriel : http://en.wikipedia.org/wiki/Regular_expression.

Getting the regex just right can be tricky, so to help you sort out a suitable expression there is a test dialog which allows you to enter an expression and then type in filenames to test it against. Start it from the command prompt using the command TortoiseProc.exe /command:autotexttest

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 depuis la page Données Sauvegardées de la fenêtre de Configuration de TortoiseSVN, vous pouvez également supprimer les messages précisément depuis la boite de dialogue Messages Récents en utillisant la toucje 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 champs texte.

Une autre façon d'insérer des chemins dans les messages informatifs est simplement de glisser/déposer les fichiers depuis la liste des fichiers dans le champs 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 aider donner plus de contrôle sur 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égulliè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 bug tracking / traqueurs 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 couleur 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 couleur 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.