Mon groupe de développement suit le modèle de branches stables stables dans Subversion. Chaque mois, une branche de publication stable est créée à partir du tronc. Parfois, les modifications doivent être fusionnées à partir de ces branches de publication dans les branches de publication suivantes et, éventuellement, dans le tronc.Fusionner les modifications manquées dans Subversion
Le problème est que, au cours des derniers mois, les fusions ont été effectuées de manière incorrecte dans toutes ces branches. De nombreuses révisions ont été ignorées en raison d'une mauvaise compréhension par les développeurs des révisions dont ils avaient besoin pour fusionner.
Un exemple historique de fusion incorrecte ressemblerait à ceci:
------------------------------------------------------------------------
r57 | Bob | 2008-11-27 04:02:46 -0600 (Thu, 27 Nov 2008) | 1 line
action:merge; origin:branches/1; target:branches/2; range:28-55
------------------------------------------------------------------------
r28 | Alice | 2008-11-25 10:14:00 -0600 (Tue, 25 Nov 2008) | 1 line
action:merge; origin:branches/1; target:branches/2; range:10-25
Ici, Bob aurait dû commencer sa fusion de R25, où la fusion d'Alice a pris fin, au lieu de R28.
Donc maintenant j'ai 6 branches qui ont été fusionnées incorrectement depuis début octobre de cette façon. Cela provoque des échecs de test et de nombreuses régressions dans le coffre. Alors maintenant, je veux revenir en arrière et fusionner tous les changements manqués.
Y a-t-il un moyen facile et correct de faire cela? Mon plan actuel est de revenir au début et de commencer à fusionner dans chaque trou. Donc dans l'exemple, je fusionnerais les révisions 25-28 de la branche 1 à la branche 2. Mais j'attends beaucoup de conflits et j'espère qu'il y aura un meilleur moyen.
Il n'y a vraiment pas de solution simple et rapide pour cela. Forcer les développeurs à gérer plusieurs branches simultanées dans Subversion est source d'erreurs et de temps. Dans ce cas, de nombreux commentaires d'archivage des développeurs sont inexacts de toute façon. Donc, il n'y a vraiment aucun moyen de revenir en arrière et de revenir sur leurs pas. Au lieu de cela, nous allons tester complètement la branche la plus récente et fermer le reste.
qui ressemble vraiment à une politique horrible et sujettes aux erreurs. J'ai toujours essayé d'adhérer à la notion de «succursale uniquement lorsque cela est nécessaire et le plus tard possible». Je suis sûr qu'il me manque quelque chose et que je n'ai tout simplement pas eu besoin de le faire à votre façon, mais pour moi, cela semble être une invitation à des problèmes. – Tim