Comment "réparer" une branche SVN/arbre de conflit?
Je l'ai pris sur un projet de logiciel et a décidé de tout mettre sous SVN (sur Assembla) à l'aide de Tortoise SVN. Le tronc est en vertu de la RACINE. De sorte que le coffre contenait l'ensemble de l'application (que j'ai marqué 1.0). Pour ma première fonction que j'ai créé une branche nommée "dev".
Je pourrais fusionner les modifications dans le coffre de la branche dans la branche dev sans problème (comme je l'ai été faire des petites corrections de bugs). Une fois que ma fonction était complet, j'ai fait une fusion dans le tronc de la branche. Tout fonctionnait fin jusqu'à ce point. Le nouveau code en vertu de la RACINE a montré que la nouvelle fonctionnalité correctement. Mais ensuite, j'ai fait un commit (le résultat de la fusion) et maintenant à chaque fois que j'essaie de faire un publipostage à partir de la racine ou de la branche dev, SVN se plaint de "l'arbre de conflit" sur de nombreux fichiers. Même les fichiers que je n'ai pas toucher depuis la fusion. J'ai essayé de résoudre les conflits, sans succès.
Je suis le seul développeur, donc je ne pas vraiment se soucier de changements majeurs dans le référentiel. Mais j'ai encore envie de conserver l'historique de tous les fichiers, si c'est possible.
Quelle serait la meilleure façon de résoudre ce problème? Est-il une manière que je pourrais marquer tous les derniers fichiers à la RACINE, le tronc comme "définitive" de la version du fichier?
[EDIT] Plus d'informations
- Oui, 'main' et 'tronc' est la même chose. J'ai clarifié ma question
- Lorsque vous fusionnées à partir de la fonction de direction générale, avez-vous d'abord faire une autre fusion à partir du tronc d'aborb les dernières évolutions du tronc?" Oui. Le tronc était à jour. Et le dev de la direction générale de toutes les modifications du tronc.
- "que tout a foiré, "s'engager": Ce que je voulais dire, c'est que la livraison était très bien, mais dès que j'ai commencé à faire fusionner à partir du coffre/du tronc, SVN se plaint de l '" Arbre des conflits.
- J'ai plus de 200 arbres conflits. Donc, ce que je suis à la recherche d'un "accepter tous de la commande"
[MODIFIER] elhoim solution ne résout pas mon problème. Cependant, il a été droit avec la version SVN de questions. Actuellement (2009-10-28), Assembla est en utilisant SVN v1.5.1 et mon tortoiseSVN est v1.6. C'était donc la raison qui m'a fait beaucoup de l'arbre de conflit. J'ai essayé d'utiliser la solution fournie par elhoim du lien et il ne fonctionne pas (j'ai essayé un tas de fusionner plusieurs fois avant d'essayer le tête-à-TÊTE de fusion. Certains fichiers n'ont pas été reportées sur la branche de la racine à cause de cela).
De voir qu'un tête-à-TÊTE de fusion ne serait pas travailler, j'ai décidé de supprimer purement et simplement tout ".svn" les fichiers dans ma branche dossier, copiez les fichiers dans le dossier RACINE et de faire un commit.
- lorsque vous fusionnées 'principal' dans 'dev', était le "principal" de la branche identique pour le coffre? Ou il ya des changements assis dans 'main' que le tronc n'avait pas encore vu?
- Je pense qu'il utilise les termes de "principal" et "tronc" pour dire la même branche.
- Besoin de quelques détails pour plus de clarté: 1. Lorsque vous fusionnées à partir de la fonction de direction générale, avez-vous d'abord faire une autre fusion à partir du tronc d'aborb les dernières évolutions du tronc? 2. Que voulez-vous dire "c'est foutu", " s'engager? Est-il possible de fournir le message d'erreur que vous avez obtenu lors de la validation?
Vous devez vous connecter pour publier un commentaire.
Cette réponse devrait aider.
Ailleurs, utilisez-vous un tortoise SVN client 1.6.x? Il semble il a des problèmes si le serveur SVN est moins de 1.5.6...
Il semble que certaines des modifications apportées au niveau de la structure de répertoire sur le tronc n'ont pas été absorbés dans la branche dev avant de tenter la fusion dans le tronc. Ce qui peut avoir causé l'arbre de conflit dans votre cas.
J'ai trouvé cet article de la SVN livre très utile et il contient des méthodes de résolution d'une situation comme la vôtre. Espérons que cette aide.
http://svnbook.red-bean.com/nightly/en/svn.tour.treeconflicts.html
[MODIFIER] INFORMATIONS SUPPLÉMENTAIRES:
Avez-vous déjà svn resolved sur l'espace de travail où l'on écrasait/a résolu le conflit entre les versions?
Il peut y avoir des fichiers/dossiers toujours marqué "en conflit" sur votre problématique de l'espace de travail (celui où vous avez réellement effectué la fusion ) - Donc, une fois que vous avez regardé à travers ceux et résoudre les conflits par la main, vous pouvez exécuter svn "résolu". J'utilise la ligne de commande de subversion client pour mon fusionne - mais j'ai vérifié et cette option est disponible sur la tortue ainsi. Cela devrait faire tomber le conflit de statut et de vous permettre de continuer. goodluck.
En général, SVN de la fusion de soutien ne peuvent gérer à l'aide d'une branche une fois. Qui est, vous travaillez dans l'informatique et la fusion des modifications du tronc, puis utiliser
svn merge --reintegrate
l'intégrer dans le tronc lorsque vous avez terminé.Après cela, si vous souhaitez continuer à travailler, vous avez besoin de créer une nouvelle branche pour travailler sur. Je pense que vous pouvez supprimer l'ancien et d'en faire un nouveau à sa place sans perdre des données si vous voulez garder le même référentiel chemin, mais vous pouvez essayer avec un test de pensions d'abord, juste au cas où le
svn:merge
info devient tordu.Ce n'est pas parfait. Voir ce post à partir de quand le courant de fusion sémantique ont été introduites pour des informations plus détaillées.
Aussi, méfiez-vous de toute utilisation de
svn cp
ousvn mv
à des fins autres que la branche et la fusion -- si vous faites cela, vous aurez besoin de supprimer le fauxsvn:merge
propriétés qu'ils créent (sur la branche et le tronc en cas de besoin) avant d'exécuter le réintégrer ou il échouera seront arbre messages de conflit.Dans l'ensemble, svn de la filiale et de fusion est encore assez faible par rapport à la VCS distribués de la famille (git, hg, bzr, darcs, etc), mais si vous suivez ces directives, il fait le travail.