Mettre à jour votre copie de travail avec les changements des autres

Figure 5.11. la boîte de dialogue de progression montrant une mise à jour terminée

la boîte de dialogue de progression montrant une mise à jour terminée


Periodically, you should ensure that changes done by others get incorporated in your local working copy. The process of getting changes from the server to your local copy is known as updating. Updating may be done on single files, a set of selected files, or recursively on entire directory hierarchies. To update, select the files and/or directories you want, right click and select TortoiseSVNUpdate in the explorer context menu. A window will pop up displaying the progress of the update as it runs. Changes done by others will be merged into your files, keeping any changes you may have done to the same files. The repository is not affected by an update.

La boîte de dialogue de progression utilise un code couleur pour mettre en évidence les diverses actions de la mise à jour

Pourpre

Nouvel élément ajouté à votre CdT.

Rouge foncé

Élément redondant supprimé de votre CdT, ou élément manquant remplacé dans votre CdT.

Vert

Changements du référentiel fusionnés avec vos changements locaux avec succès.

Rouge clair

Changements du référentiel fusionnés avec des changements locaux, aboutissant à des conflits que vous devez résoudre.

Noir

Élément inchangé dans votre CdT mis à jour par une version plus récente du référentiel.

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.

If you get any conflicts during an update (this can happen if others changed the same lines in the same file as you did and those changes don't match) then the dialog shows those conflicts in red. You can double click on these lines to start the external merge tool to resolve the conflicts.

When the update is complete, the progress dialog shows a summary of the number of items updated, added, removed, conflicted, etc. below the file list. This summary information can be copied to the clipboard using Ctrl+C.

The standard Update command has no options and just updates your working copy to the HEAD revision of the repository, which is the most common use case. If you want more control over the update process, you should use TortoiseSVNUpdate to Revision... instead. This allows you to update your working copy to a specific revision, not only to the most recent one. Suppose your working copy is at revision 100, but you want it to reflect the state which it had in revision 50 - then simply update to revision 50. In the same dialog you can also choose the depth at which to update the current folder. The terms used are described in la section intitulée « Checkout Depth ». The default depth is Working copy, which preserves the existing depth setting. You can also choose whether to ignore any external projects in the update (i.e. projects referenced using svn:externals).

Attention

If you update a file or folder to a specific revision, you should not make changes to those files. You will get « out of date » error messages when you try to commit them! If you want to undo changes to a file and start afresh from an earlier revision, you can rollback to a previous revision from the revision log dialog. Take a look at la section intitulée « Roll back (Undo) revisions in the repository » for further instructions, and alternative methods.

Mettre à jour à la révision peut être utile de temps à autre pour voir à quoi votre ressemblait projet à un certain point précédent plus tôt dans son histoire. Mais en général, mettre à jour des fichiers individuels à une révision précédente n'est pas une bonne idée puisque cela laisse votre copie de travail dans un état incohérent. Si le fichier que vous mettez à jour a changé de nom, vous pouvez même constater que le fichier disparaît juste de votre copie de travail parce qu'aucun fichier de ce nom n'a existé dans la révision précédente. Si vous voulez simplement une copie locale d'une vieille version d'un fichier il vaut mieux utiliser la commande Menu contextuelSauver la révision sous... depuis la boîte de dialogue du journal pour ce fichier.

Plusieurs fichiers / répertoires

Si vous choisissez plusieurs fichiers et plusieurs dossiers dans l'explorateur et sélectionnez ensuite Mettre à jour, tous ces fichiers/dossiers sont mis à jour un par un. TortoiseSVN s'assure que tous les fichiers/dossiers qui sont du même référentiel sont mis à jour à la même révision exacte ! Même si une autre livraison se produit entre ces mises à jour.

Le fichier local existe déjà

Parfois quand vous essayez de mettre à jour, la mise à jour échoue avec un message disant qu'il y a déjà un fichier local du même nom. Cela arrive typiquement quand Subversion essaye d'extraire un fichier nouvellement versionné et constate qu'un fichier non versionné du même nom existe déjà dans votre dossier de travail. Subversion n'écrasera jamais un fichier non versionné - il pourrait contenir quelque chose sur lequel vous travaillez, qui a par hasard le même nom de fichier qu'un autre développeur a utilisé pour son fichier nouvellement livré.

Si vous obtenez ce message d'erreur, la solution est simplement de renommer le fichier local non versionné. Une fois la mise à jour terminée, vous pouvez vérifier si le fichier renommé est toujours nécessaire.

Si vous continuez à obtenir des messages d'erreur, utilisez TortoiseSVNVérifier les modifications pour lister tous les fichiers à problème à la place. De cette façon vous pouvez tous les traiter d'un coup.