2008-11-30 7 views
4

J'ai une branche de développement qui n'a pas été touchée depuis un moment. J'ai fusionné le tronc dedans pour intégrer de nombreux correctifs/changements dans la ligne principale depuis qu'il a été ramifié, mais maintenant j'ai beaucoup de petits conflits (merge-left/merge-right).La résolution des conflits SVN fusionnés récursivement

Je souhaite que la dernière révision de tronçon soit utilisée pour résoudre chaque conflit. Y at-il une commande que je peux exécuter qui résoudra tous les conflits sous une copie de travail dans une direction automatiquement (fusionner-droite devrait être utilisé pour tous les conflits)?

EDIT: Comme indiqué dans les commentaires, j'ai essayé de revenir en arrière, puis en exécutant svn merge avec l'option --accept, seulement apparemment il n'y a pas une telle option dans SVN 1.0. Toujours à la recherche d'une solution.

+1

ne peut pas vous installer svn 1.5 juste pour la fusion? Vous pouvez même le faire sur une autre machine. – orip

+0

Je vais chercher –

Répondre

7

Je pense que vous pouvez utiliser l'option "--accept theirs-full" lorsque vous émettez la commande svn merge. Cela devrait faire ce que vous voulez ...

+0

Je suis à la recherche d'une solution qui peut être appliquée après l'opération de fusion –

+0

Ooops ... Désolé, je n'ai pas compris cela ... Je pense que le plus simple est un svn revenir sur le local copier après la fusion a généré des conflits – abigagli

+0

En fait il n'y a pas une telle option svn merge --accept .. –

0

Je pense que TSVN pourrait le faire si vous faites un "Vérifier les modifications", qui vous montrera tous les fichiers, y compris les fichiers en conflit, sélectionnez-les tous, puis choisissez ' résoudre en utilisant le leur.

Je ne sais pas si TSVN est pertinent pour votre plate-forme, ou qui est en fait exactement ce que vous voulez faire, mais il pourrait être utile ...

+0

Oui, je le fais actuellement, mais il faudra un certain temps pour terminer (environ 100 Mo de dépôt). J'espérais une solution de ligne de commande que je pourrais utiliser sur le serveur, et pour référence future –

3

Comme l'a dit abigagly, vous devez utiliser --accept theirs-full lorsque vous faites la fusion . Si vous avez déjà effectué la fusion et que vous souhaitez recommencer, vous pouvez d'abord utiliser svn revert -R pour recommencer.

L'option --accept est nouvelle dans SVN 1.5, avec un support de fusion interactif.

+0

L'option n'existe pas --accept pour svn merge –

+1

Ceci est une nouvelle option dans SVN 1.5. – Avi

+0

bummer pour moi .. :) –

0

Ok, j'ai un plan et je pense que cela explique la plupart de mes malheurs - (récoltés dans mon post pour les utilisateurs @ subversion ...)

Je pense que nous avons touché les problèmes suivants qui ont fait qu'empirer les choses:

  • cerise choisir se confond + se fond à des niveaux inférieurs racine (tous sont autorisés, mais ils peuvent faire se fond plus tard plus complexe)
  • nous avons supposé la fin de commande de fusion signifiait toutes les modifications ont fusionné (n'a pas une double vérification avec mergeinfo - exposition-révolutions éligibles)
  • po bogues pliants avec les clients antérieurs (1.5 ou début 1.6). Nous avons de nombreux systèmes ubuntu et debian et nous étions au courant du site de mise à jour de wandisco. Donc, nous avons manqué sur le moyen facile de rester à jour. Nous sommes maintenant rapidement déployons 1.6.11

processus PUSH:

  1. svn fusion --reintegrate --accept reporter chemin à l'espace de travail branche URL
  2. svn mergeinfo branche URL --show-chemin à régime moteur-espace de travail admissibles> eligible_revs.txt
  3. répéter jusqu'à plus rien que ce eligable

processus PULL: même modèle, mais moins le --reintegrate

3
svn --version 
svn, version 1.6.17 (r1128011) 

svn resolve -R --accept='theirs-full' <path> 
Questions connexes