Cela me perturbe depuis longtemps - comment résoudre correctement un conflit de fusion dans les propriétés SVN définies sur un répertoire? Disons par exemple que deux développeurs travaillent sur un projet où svn: ignore est défini sur un répertoire. Si les deux développeurs apportent des modifications à cette propriété, ils verront un conflit de fusion lors de la mise à jour du second.
Contrairement aux conflits de fusion de fichiers, un seul fichier est généré dans le répertoire appelé "dir_conflicts.prej", que le second développeur doit lire et corriger manuellement. En général, ce que je finis par faire est de revenir à toutes mes modifications sur la copie locale, puis de redéfinir ces propriétés manuellement avec les informations contenues dans dir_conflicts.prej. Cependant, cela est plutôt fastidieux quand il s’agit de gérer une grande liste d’URL dans une propriété svn: externals, comme beaucoup de nos projets l’utilisent.
Il doit y avoir un meilleur moyen de faire cela - est-ce que quelqu'un sait comment?
Juste une mise à jour rapide après quelques recherches supplémentaires - il est pas possible de fusionner facilement les propriétés SVN. La méthode décrite à l'origine (rétablir, fusionner des données à partir de fichiers .prej, propset, re-commit) semble être le meilleur moyen de traiter ce type de problème.
En attendant, cela est possible dans Eclipse + Subclipse (Indigo) en utilisant la fonction
Equipe-> Modifier les conflits de propriétés
(juste essayé avec des propriétés svn: ignore en conflit)
Cette fonction ouvre une boîte de dialogue qui affiche les deux versions de propriétés (locale et référentiel), dans lesquelles vous pouvez copier et coller, puis résoudre le conflit en utilisant Team-> Mark Resolved.
J'ai eu le même problème.
J'ai essayé d'utiliser Team-> Edit Property Conflicts mais mon STS s'est pendu et n'a pas répondu, ce qui m'a forcé à fermer.
Il est possible de résoudre avec TortoiseSVN
Voici comment j'ai résolu
dir_conflicts.prej
Voulez-vous dire un conflit de fusion lors de la validation/mise à jour ou d'une fusion de branche?
Le SVN Book est assez clair sur la propriété svn: ignore en particulier:
Subversion ne suppose pas que chaque fichier ou sous-répertoire D'un répertoire de copie de travail Est destiné au contrôle de version . Les ressources doivent être explicitement placées Sous la gestion de Subversion À l'aide des commandes svn add ou svn import .
...
Obliger chaque utilisateur de ce référentiel à ajouter des modèles pour ces ressources à ses zones de configuration d'exécution ne serait pas seulement un fardeau, mais risquerait de se heurter aux besoins de configuration d'autres copies de travail que l'utilisateur a extraites.
J'aimerais pouvoir offrir une solution plus optimiste, mais de par mon expérience, il n'est actuellement pas possible de fusionner des propriétés svn avec TortoiseSVN. Voir http://svn.haxx.se/tsvn/archive-2008-09/0212.shtml.
J'ai eu un conflit similaire. J'ai ouvert dir_conflicts.prej
dans un éditeur de texte et j'ai vu que le svn ignore list
avait été modifié. Heureusement, le contenu de la liste était identique, seul l'ordre a été modifié. Donc, dans TortoiseSVN 1.9.3
, je viens de cliquer avec le bouton droit sur le dossier puis TortoiseSVN -> Resolve...
. Et le conflit était résolu.
Soyons clairs, SVN semble utiliser le fichier dir_conflicts.prej pour déduire le fait que le répertoire est en conflit. Si vous avez l'intention de régler manuellement le conflit, vous pouvez simplement supprimer le fichier dir_conflicts.prej, puis définir manuellement les propriétés svn comme vous le souhaitez. (Bien sûr, assurez-vous d’obtenir ce dont vous avez besoin du fichier .prej avant de le supprimer!)