-
Travailler en équipe
Bonjour,
Nous sommes dans une petite entreprise et nous développons une application fullweb. Pour le peu de développeurs que nous sommes nous ne nous prenons pas la tête entre nous pour la gestion des accès au projet.
Mais voilà, nous avons un regain temporaire d'activité et comptons prendre chez nous plusieurs stagiaires un certain temps. ils vont travailler sur des projets différents, mais pouvant avoir des interactions croisées avec les projets d'autres personnes voir avec les notre. Nous souhaitons aussi protéger notre travail et ne laisser aux stagiaires qu'un accès restreint à la partie qui leur est nécessaire pour coder. Nous nous sommes penchés un peu sur les outils les plus connus pour ça : SVN et GIT.
Mais dans leur utilisation standard et le PHP ne se compilant pas, on ne voit pas comment faire le travail en communauté de façon sécurisée, et sans que le travail d'un individu n'impacte celui d'un autre.
Avez-vous des conseils à nous donner ?
Merci bien par avance !!
-
Bonsoir,
Git permet d'éviter que le travail des uns n'impacte pas celui des autres.
Chaque utilisateur a son propre dépôt (il n'existe pas de dépôt central à proprement parler, comme peut l'avoir SVN, même si on peut avoir un dépôt master) et donc peut faire autant de dégâts qu'il veut sur ce dépôt sans impacter les autres.
Chacun travaille donc sur son propre dépôt, et une fois qu'il a terminé son projet (ou à chaque fois qu'il doit envoyer un code pour validation/approbation), il pousse le code vers un autre dépôt (ex master). Celui qui possède les pleins droits sur master examine à son tour le code, regarde s'il n'y a pas de conflits et fusionne (merge) le code avec le code présent dans master. Git affichera un message d'erreur si la fusion échoue à cause d'un conflit quelconque.
Une fois le nouveau code apprové et mergé dans master, on peut ensuite déclencher la suite de tests pour vérifier que le nouveau code n'a pas entraîné des bugs. Et enfin une fois que tout est OK, on peut envoyer ce code fonctionnel dans le dépôt release.
Je te conseille de lire la doc, c'est très bien fait: https://git-scm.com/documentation
Quant à l'autre question (accès restreint), à moins que ça ne soit pour des questions de confidentialité, je ne vois pas le problème à partir du moment où le développeur sait quels fichiers/dossiers il doit toucher. En plus, git permet de choisir quelle modification doit être fusionnée, donc celui qui a les droits sur le dépôt master peut refuser toutes les modifications inappropriées. Ou, au pire, il faut exclure de git les fichier que le développeur ne doit pas modifier, ce qui fait que ces fichiers ne seront pas copiés lorsqu'il clonera le dépôt initial.