Dev à plusieurs Git est-il la solution ?

Eléphant du PHP | 77 Messages

19 sept. 2016, 15:05

Slt,

Je me heurte à un soucis de développement à plusieurs pouvant impacter des même fichiers.

Exemple.

hello.php

Code : Tout sélectionner

<?php $hello = 'Hello World'; if (empty($_GET['ok']))echo $hello; else echo 'WTF !!!'; ?>
Bob est missionné pour modifier la variable $hello et intégrer la $suite :

Code : Tout sélectionner

<?php $hello = 'Bonjour les gars'; $suite = 'WTF !!!'; if (empty($_GET['ok']))echo $hello; else $suite; ?>
En même temps, Billy est missionné pour préciser la condition :

Code : Tout sélectionner

<?php $hello = 'Hello World'; if (empty($_GET['ok']))echo $hello; elseif ($_GET['ok'] == 'OK')echo 'WTF !!!'; else exit; ?>
Comment gérer cela pour obtenir au final le mixe des deux :

Code : Tout sélectionner

<?php $hello = 'Bonjour les gars'; $suite = 'WTF !!!'; if (empty($_GET['ok']))echo $hello; elseif ($_GET['ok'] == 'OK')echo $suite; else exit; ?>
J'arrive pas à croire que git puisse permettre cela...

Merci de votre aide.

Avatar de l’utilisateur
Modérateur PHPfrance
Modérateur PHPfrance | 8682 Messages

19 sept. 2016, 15:19

salut,

un système de gestion de version permet cela (on parle aussi de mise en configuration).
il existe git, svn, mercurial, clearcase etc....

de nos jour git est le plus connu et le plus répendu.

Il y a les grands classiques comme github, bitbucket (des dépôt privé gratis) mais tu aussi t'en héberger un tout seul (par exemple combo docker + gogs).

Pour ce qui est de l'utilité, outre l'historisation des modifications dans le code git va te permettre d'avoir un référentiel de code comment (le serveur git) et chaque fois qu'un dev fait un modif il la pousse sur le serveur git, la soit sa passe soit ça casse : conflit y a quelqu'un qui a déjà fait une modif => tu merges.

Maintenant git vient aussi avec des méthode de travail comme git gflow => https://www.grafikart.fr/formations/git/git-flow (il y a aussi des tuto généraux sur git sur ce même site)
a partir de la chaque personne qui fait une évolution travail sur une branche distinct et ensuite on merge, ou pas.

tu peux aussi utiliser les pull request (ce qui et fait sur github). chaque personne clone le dépôt et l'utilise pour faire ses modif quand il a finit il fait une pull request sur l'original et la celui qui gère accepte ou non le merge.

a travail en groupe tu va y gagner à utiliser git ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 77 Messages

19 sept. 2016, 16:02

"a travail en groupe tu va y gagner à utiliser git"

Ouias, j'imagine, parce que là, je me tape 6 jours de dev et 2 journée de vérif/fusion... ça me gave. :-)

Avatar de l’utilisateur
Modérateur PHPfrance
Modérateur PHPfrance | 8682 Messages

20 sept. 2016, 09:25

ben je dit pas que cela ne va t'arriver mais chacun va devoir faire son merge, cela est grandemen automatiser, il y a des clients git de mieux en mieux (sourcetree de atlassian et gitkraken sont mes préférés du moment).

Utilise gitflow en gardant la branche master pour la branche de prod et chacun sa branche en cas de développement de fonctionnalité différente cela va te permettre d'intégrer ou non une fonctionnalité à chaque livraison (le tous servis a volonté ;) ).

C'est pas magique quand même il peut y avoir des conflits mais les outils de diff et de merge vont grandement t'aider.

Ajout la dessus une intégration continue (jenkins & Co) pour build sur commit et tu va vite être trtanquile sur la qualité du soft (bon si y a des tests unitaires c'est mieux que de juste tester si "ça build" surtout en php ;) ).


@+
Il en faut peu pour être heureux ......