J'ai récemment rencontré un comportement très étrange de Subversion.
Je viens de fusionner ma copie locale d'une branche avec une branche distante. Tout s'est bien passé, mais j'ai un conflit d'arborescence (suppression locale, mise à jour à distance).
D'accord, pensais-je, modifiais la copie de travail de manière appropriée et exécutais "svn resol --accept = working -R.".
Subversion a dit qu'il avait résolu mes problèmes et que "svn st" ne posait plus aucun problème. Donc, j'ai essayé de m'engager, mais svn m'a dit qu'un des dossiers internes (à l'intérieur de mon dossier en conflit) était obsolète et a suggéré de faire ceci, MAIS cela a rendu le dossier en conflit à nouveau!
Que dois-je faire pour sortir de ce cercle visieux?
Cela peut aider ou non, mais parfois, un "nettoyage SVN" résoudra des problèmes de métadonnées étranges. Si vous extrayez une copie de travail vierge, la copie vierge présente-t-elle le même problème? Si oui, alors la réponse précédente semble être un pas dans la bonne direction
~/sandbox/jabira > svn resolve --accept=theirs-full testClient/
svn: warning: Tree conflicts can only be resolved to 'working' state; 'testClient' not resolved
~/sandbox/jabira > svn resolve --accept=working testClient/
Resolved conflicted state of 'testClient'
J'espère que cette aide
Vous pouvez utiliser un autre moyen que la commande svn resol:
C'est ce qui a fonctionné pour moi d'abandonner toutes les modifications locales et d'aller avec les fichiers du référentiel du serveur:
svn update --accept theirs-full
svn resolve --accept theirs-full <pathname>
Le message suivant apparaît: W155027: Le conflit d’arbres ne peut être résolu que pour «fonctionner».
Prochaine étape peu intuitive, mais cela coupe en fait le catch-22 :
svn resolve --accept=working <pathname>
MAINTENANT, revenez tous les changements "de travail" récursivement. Cela a annulé tous mes changements locaux.
svn revert -R .
Retour à la normale, sans erreur:
svn update
Vos dossiers n'étaient probablement pas mis à jour lorsque vous avez fusionné, ou il y avait un conflit quelque part avant la fusion. Pour résoudre ce problème, vous devez restaurer votre coffre (dossier cible) à la révision précédente. Ensuite, exécutez le nettoyage sur ce dossier. Ensuite, exécutez le nettoyage sur le dossier de la branche (dossier source). Puis mettez à nouveau les deux dossiers à nouveau. Si des lignes apparaissent en rouge dans n'importe quel flux de travail, vous devez d'abord restaurer ces fichiers, puis les rendre dans l'état dans lequel vous les souhaitez. Ensuite, mettez à jour les dossiers (oui, encore une fois). Enfin, effectuez à nouveau la fusion.