Windows/Conflit TortoiseSVN
Résoudre un conflit avec TortoiseSVN
Il arrive que lors du commit d'un document sur le dépôt SVN, celui-ci génère un conflit. Cela arrive lorsque l'on modifie et commit un document qui avait été modifié et commité avant sans que l'on fasse d'update entre les deux.
Si on utilise une version récente de TortoiseSVN, celui-ci détectera le conflit et proposera d'updater le fichier avant de le commit. Deux solutions s'offrent alors :
- soit on refuse l'update, et dans ce cas là le commit n'aura pas lieu, on pourra alors tout simplement enlever nos modifications, updater le fichier puis remettre nos modifications
- soit on accepte l'update, et cela va générer tout de même un conflit
Si on a accepté l'update, TortoiseSVN va générer 2 nouveaux fichiers :
- un fichier correspondant à la révision de base de la copie de travail, c'est à dire la révision présente dans la copie de travail avant la modification
- un fichier correspondant à la dernière révision (head) sur le serveur
Il y aura donc ces deux fichiers (avec une extension du type .rXXXX) en plus du fichier contenant nos modifications (sans extension particulière). Il y a alors différentes solutions pour résoudre ce problème. Toutes les fonctions suivantes sont disponibles dans le sous menu TortoiseSVN lors du clic droit sur le fichier.
Cleanup
C'est la solution la plus radicale et la plus simple, mais à éviter. Cela va tout simplement remplacer la dernière révision (head) par la version que l'on vient de modifier.
Avec cette solution, toutes les modifications effectuées depuis la révision de base présente dans la copie de travail seront supprimées, ce n'est donc pas très pratique.
Revert
C'est une solution très simple qui va être pratique si l'on a modifié que très peu de chose dans le document.
En utilisant cette solution, TortoiseSVN va tout simplement supprimer nos modification et remettre le fichier de base de la copie de travail.
Il suffira ensuite de faire un update, de remettre nos modifications puis de commiter.
Edit conflicts
Cette solution permet de visualiser les différents ajouts et suppressions effectués depuis la révision de base de la copie de travail.
On pourra alors choisir d'accepter ou non ces modifications.
Par exemple, si quelqu'un a rajouté une ligne depuis la révision de la copie de travail, puis que l'on a nous aussi rajouté une ligne ensuite, on pourra accepter sa modification ainsi que la notre pour fusionner les deux.
Après avoir utilisé cette solution, il faudra impérativement mettre le fichier en résolu (Resolved) avant de le commiter.
A noter que cette solution n'est pas très efficace sur les fichier ODS, mais plutôt sur les fichiers ODT.
Documentation officielle : http://tortoisesvn.net/docs/release/TortoiseSVN_fr/tsvn-dug-conflicts.html