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 5.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 signe 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

If you think that the commit dialog shows you too many unversioned (e.g. compiler generated or editor backup) files, there are several ways to handle this. You can:

  • 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.

Read la section intitulée « Ignorer des fichiers et des répertoires » for more information.

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.

You can select or deselect items by clicking on the checkbox to the left of the item. For directories you can use Shift-select to make the action recursive.

The columns displayed in the bottom pane are customizable. If you right click on any column header you will see a context menu allowing you to select which columns are displayed. You can also change column width by using the drag handle which appears when you move the mouse over a column boundary. These customizations are preserved, so you will see the same headings next time.

By default when you commit changes, any locks that you hold on files are released automatically after the commit succeeds. If you want to keep those locks, make sure the Keep locks checkbox is checked. The default state of this checkbox is taken from the no_unlock option in the Subversion configuration file. Read la section intitulée « Configuration générale » for information on how to edit the Subversion configuration file.

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.

You can drag unversioned files which reside within a working copy into the commit dialog, and they will be SVN added automatically.

Repairing External Renames

Sometimes files get renamed outside of Subversion, and they show up in the file list as a missing file and an unversioned file. To avoid losing the history you need to notify Subversion about the connection. Simply select both the old name (missing) and the new name (unversioned) and use Context MenuRepair Move to pair the two files as a rename.

Listes de changements

The commit dialog supports Subversion's changelist feature to help with grouping related files together. Find out about this feature in la section intitulée « Listes de changements ».

Excluding Items from the Commit List

Sometimes you have versioned files that change frequently but that you really don't want to commit. Sometimes this indicates a flaw in your build process - why are those files versioned? should you be using template files? But occasionally it is inevitable. A classic reason is that your IDE changes a timestamp in the project file every time you build. The project file has to be versioned as it includes all the build settings, but it doesn't need to be committed just because the timestamp changed.

To help out in awkward cases like this, we have reserved a changelist called ignore-on-commit. Any file added to this changelist will automatically be unchecked in the commit dialog. You can still commit changes, but you have to select it manually in the commit dialog.

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 5.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.

The log message window also includes a filename and function auto-completion facility. This uses regular expressions to extract class and function names from the (text) files you are committing, as well as the filenames themselves. If a word you are typing matches anything in the list (after you have typed at least 3 characters, or pressed Ctrl+Space), a drop-down appears allowing you to select the full name. The regular expressions supplied with TortoiseSVN are held in the TortoiseSVN installation bin folder. You can also define your own regexes and store them in %APPDATA%\TortoiseSVN\autolist.txt. Of course your private autolist will not be overwritten when you update your installation of TortoiseSVN. If you are unfamiliar with regular expressions, take a look at the introduction at http://en.wikipedia.org/wiki/Regular_expression, and the online documentation and tutorial at http://www.regular-expressions.info/.

You can re-use previously entered log messages. Just click on Recent messages to view a list of the last few messages you entered for this working copy. The number of stored messages can be customized in the TortoiseSVN settings dialog.

You can clear all stored commit messages from the Saved data page of TortoiseSVN's settings, or you can clear individual messages from within the Recent messages dialog using the Delete key.

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

If you have activated the bug tracking system, you can set one or more Issues in the Bug-ID / Issue-Nr: text box. Multiple issues should be comma separated. Alternatively, if you are using regex-based bug tracking support, just add your issue references as part of the log message. Learn more in la section intitulée « Integration with Bug Tracking Systems / Issue Trackers ».

Commit Progress

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

Figure 5.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.