Bonjour,
Je poste la question ici, car je ne sais absolument pas où la poser ailleurs... Si un modérateur passe par ici, et pense que cette question à une meilleure place dans un autre forum, je sus preneur !
Dans les jours à venir, je vais travailler en équipe avec d'autres personnes sur la partie WEB d'un ERP.
Les modifications que nous allons faire seront exclusivement :
- Modifications de fichiers de configuration en XML (fichiers définissant les requêtes, la cinématique des traitements, etc.)
- Modifications de fichiers de mise en forme XSL (mise en forme des flux de données XML générés par l'ERP)
(d'où le choix de ce forum pour poser la question)
Nous travaillons sur un serveur WebLogic. Nos postes de développement seront dottés d'OC4J.
Le but de la manœuvre, c'est :
- D'avoir une "branche" contenant les fichiers standards, livrés par l'éditeur. Au fur et à mesure de l'avancement de notre projet, nous pourrions nous faire re-livrer des fichiers "standard".
- D'avoir une "branche" par "lot" de personnalisation.
- De gérer convenablement la concurrence des mises à jours.
Jusqu'à présent, nous travaillions avec SVN sans gestion de branches. Et c'était un joyeux bordel.
Sur un précédent projet, alors que le projet était bien avancé, j'ai tenté de mettre en place une gestion de branches avec la logique suivante :
- trunk : version recettée. Une version donnée du trunk correspondant à la version déployée en production.
- branches : chaque branche correspondant à des lots différents.
Le seul problème :
- nous n'avions pas de branche "standard". Ainsi, lorsqu'un jour nous nous sommes fait relivrés des fichiers, nous avons du faire les merges 100% à la main, sans trop savoir ce qui avait changé entre la version reçue, la version initiale, et nos modifications.
- nous n'avions aucun moyen de regrouper des "lots" dans un "gros lots". C'est à dire que lorsqu'une personne terminait le lot "1.2" et qu'une autre le "1.1", il nous était impossible de la transformer en "lot 1", ou tout du moins, il nous était alors impossible de continuer avec à travailler sur les sous-lots.
Est-ce SVN permet de faire ceci ?
- tronc : version de recette. A chaque validation d'une version, elle est déployée sur la production.
- branche "standard" : contient les fichiers livrés par l'éditeur, et les mises à jour reçues. Cette branche doit pouvoir être réinjectée à tout moment dans l'ensemble des autres branches (quand on reçoit une mise à jour de l'éditeur, elle doit être appliquée sur l'ensemble des développements en cours)
- branches "lot x" : version de "recette" à un instant T, que nous faisons évoluer en fonction d'un cahier des charges. Nous devons pouvoir à tout moment injecter cette branche dans la branche "recette". Cette branche n'évolue pas, elle se contente d'être alimentée par les modifications des lots suivants.
- branches "lot x.y" : versions de "lot x", avec développements de chaque fonctionnalité y du "lot x" séparément.
Est-ce que ça vous semble "propre" comme gestion des sources ? Pas trop usine à gaz ?
SVN permet-il de faire ça ? Notamment des sous-branches ? Et le fait de mettre à jour des branches avec les évolutions d'une autre, sans forcément passer par le tronc (c'est à dire que livraison d'une mise à jour standard ou non, il ne faut pas perturber les tests utilisateurs sur le tronc)
Partager