Impossible de résoudre le conflit d'arborescence avec SVN

J'ai récemment rencontré un comportement très étrange de subversion.

Je viens de fusionnées ma copie locale d'une branche avec une branche distante. Tout s'est bien passé, mais j'ai un conflit d'arborescence 1 (Suppression locale, mise à jour à distance).

D'accord, j'ai pensé, modifié la copie de travail de manière appropriée et lancé " svn resolve --accept =working-R .".

Subversion a dit qu'il a résolu mes problèmes et "svn st" n'a plus montré de problèmes. Donc, j'ai essayé de commettre, mais svn m'a dit que l'un des les dossiers internes (à l'intérieur de mon conflit) étaient obsolètes et suggérés à svn up, mais le dossier était à nouveau en conflit!

Que dois-je faire pour sortir de ce cercle visieux?

24
demandé sur Anton 2010-01-07 17:54:40

5 réponses

Cela peut ou non aider, mais parfois un "nettoyage svn" corrigera des problèmes de métadonnées étranges. Si vous découvrez un travail propre copie, la copie propre ont le même problème? Si oui, alors la réponse précédente sonne comme un pas dans la bonne direction

8
répondu Sam Post 2010-01-07 15:15:59
~/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'

Espérons que cette aide

43
répondu Jabir Ahmed 2013-05-02 20:27:57

Vous pouvez utiliser une autre méthode que la commande svn resolve:

  1. crée un correctif du fichier en conflit. (ou une sauvegarde de votre version du dossier en conflit avec svn export ...)
  2. Mettez à jour votre référentiel (svn update)
  3. Appliquez le correctif précédemment effectué (ou remplacez le fichier/dossier en conflit par la sauvegarde)
  4. valider la modification (svn commit)
5
répondu Phong 2010-01-07 15:03:30

C'est ce qui a fonctionné pour moi d'abandonner tous les changements locaux et d'aller avec les fichiers du référentiel du serveur:

svn update --accept theirs-full

svn resolve --accept theirs-full <pathname>

Ce message apparaît: W155027: le conflit D'arborescence ne peut être résolu que sur 'working'

Étape suivante Non intuitive mais cela Coupe réellement la prise-22:

svn resolve  --accept=working <pathname>

Maintenant revenir à tous les changements" de travail " récursivement. Cela a défait tous mes changements locaux.

svn revert -R .

Retour à la normale, sans erreurs:

svn update
1
répondu Chloe Tempo 2017-11-16 23:19:45

Vous n'avez probablement pas mis à jour vos dossiers lorsque vous avez effectué la fusion, ou il y avait un conflit quelque part avant la fusion. Pour corriger, vous devez rétablir votre tronc (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 à jour à nouveau les deux dossiers. Si vous obtenez des lignes en rouge dans un workflow, vous devez d'abord restaurer ces fichiers, puis les mettre dans l'état dans lequel vous les souhaitez. Puis mettez à jour le les dossiers (oui, encore une fois). Enfin effectuer la fusion à nouveau.

0
répondu MacGyver 2012-04-02 19:24:02