Bonjour à tous,
Je tente de mettre en place eclipse avec les plugins phpeclipse et subversion (plugin subclipse) pour avoir une plate-forme de développement collaboratif sur PHP.
Il y a quelque chose qui me perturbe sur le principe même d'un système CVS: Tout le système est virtuel, c'est à dire que l'on n'agit pas directement sur les fichiers PHP de notre projet, mais sur une copie locale (opération de checkout), et lorsque l'on commit les modifications, tout ce que l'on fait, c'est updater une base de données qui contient, sous une forme propre, tout le projet.
Donc, si je comprends bien, le processus est le suivant:
- on checkout le projet
- on fait les modifs, que l'on teste sur notre working copy
- on commit les modifs sur le serveur CVS
- et là, on va remplacer les fichiers de programme sur le système en production par nos fichiers modifiés.
Déjà, est-ce que jusqu'ici, je ne me trompe pas?
En partant de là, voici ma problématique:
Je dispose d'un serveur de développement qui héberge toute l'appli, écrite en PHP, sur IIS, l'appli attaquant une base oracle distante.
Si un développeur doit mettons corriger un bug sur un fichier php, devra-t-il juste faire un checkout du fichier, qu'il testera à l'aide d'un copie locale du système, ou du système entier? Je suppose que la deuxième option est la bonne (en effet, si l'on ne checkout qu'un seul fichier, on n'est pas sûr de le tester avec la dernière version du système entier), mais alors comment font les développeurs quand ils doivent faire un checkout d'applis de plusieurs centaines de Mo? Ce n'est pas mon cas (quoique... à condition de virer du projet les répertoires de logs...) mais je me posais la question.
Ensuite, corrigez moi si je me trompe, mais j'ai l'impression que les systèmes CVS ne permettent pas de qualifier les révisions, par exemple correction de bug, ajout de fonctionnalité, ou encore modification de fonctionnement. Un seul numéro ne me suffit pas, j'aimerais pouvoir utiliser un système (ce n'est qu'un exemple) de numérotation de version style x.y.z, où x est un numéro de version majeure, y un numéro de mise à jour (ajout/modif de fonctionnalité) et z un numéro de correctif.
Voilà voilà, j'espère m'être fait comprendre.![]()
Partager