IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GIT Discussion :

Conseils pour l'utilisation de Git


Sujet :

GIT

  1. #1
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut Conseils pour l'utilisation de Git
    Bonjour,

    je travaille sur un projet avec plusieurs personnes (un graphiste, un testeur).

    les environnements dont j'ai besoin sont :
    - evt_dev
    - evt_graphiste
    - test
    - demo
    - prod

    Tous ces environnements sont sur un même serveur.

    J'ai donc pensé à mettre en place l'organisation suivante :
    - création d'un dépôt avec la version actuelle sur projet
    - création de clones pour les différents environnements

    Lorsque j'ouvre mon environnement de développement je fais un pull de mon repo pour récupérer les dernières modifications faites par le graphiste, je développe mes fonctionnalités et lorsque je les ai bien testées, je les push dans le dépôt.

    Une fois que nous avons une version stable (fin de notre sprint), je vais dans le dossier de test pour faire pull de dépôt et récupérer la dernière version.

    Une fois que les tests ont été effectués et sont concluants, je vais dans les dossiers de demo et prod et fais un pull du dépôt pour mettre en prod les dernières fonctionnalités.

    Que pensez-vous de cette organisation ? Est-ce la bonne méthode ?

    Merci de vos conseils et avis...

  2. #2
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Non... avec ton process tu bloques chacun des environnements !

    Il faut travailler avec des branches... par exemple en suivant ce workflow git-flow

    Tu peux suivent se type de workflow manuellement ou installer l'extention gitflow

    Cdlt,
    Philippe

  3. #3
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    Merci de ta réponse.

    Le souci est si le graphiste et le dev travaillent sur le même environnement, les bugs de l'un risquent d'impacter l'autre et réciproquement !
    en outre, je ne comprends pas ce que veut dire "bloquer chacun des environnement" ? En effet, en faisant un pull en début de journée, le dev récupère les pushs du graphiste avant de commencer à bosser et donc son environnement n'est pas bloqué, non ?

  4. #4
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Citation Envoyé par grinder59 Voir le message
    Merci de ta réponse.
    Le souci est si le graphiste et le dev travaillent sur le même environnement, les bugs de l'un risquent d'impacter l'autre et réciproquement !
    Non puisque chacun travaille sur sa branche...
    Citation Envoyé par grinder59 Voir le message
    en outre, je ne comprends pas ce que veut dire "bloquer chacun des environnement" ? En effet, en faisant un pull en début de journée, le dev récupère les pushs du graphiste avant de commencer à bosser et donc son environnement n'est pas bloqué, non ?
    Oui mais les push sont alors interdits... si certains de tes fichiers sont partagés !

  5. #5
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    Humm...

    Ok pour les branches afin que chacun bosse sur ses fonctionnalités mais comment les tester ? Mon site est accessible via l'url : www.monsite.com
    Lorsque je fais une modification sur le controller bidule, j'enregistre les modifications et ouvre l'url : www.monsite.com/bidule pour vérifier le résultat !

    Donc si chacun bosse sur sa branche, est-ce qu'il est possible de tester nos développements individuellement ? Mon controller affiche la string "bonjour" et le graphiste définit un fond rouge.

    Comment puis-je tester la page qui n'affiche que bonjour (ma fonction) ? et comment le graphiste peut-il tester la page vide mais avec un fond rouge ? L'idée étant qu'une fois non tests faits nous puissions commiter tout cela sera le master ?

  6. #6
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Citation Envoyé par grinder59 Voir le message
    Donc si chacun bosse sur sa branche, est-ce qu'il est possible de tester nos développements individuellement ? Mon controller affiche la string "bonjour" et le graphiste définit un fond rouge.
    Il faut pour celà partager la même branche puisque vous allez travaillez ensemble !

    Citation Envoyé par grinder59 Voir le message
    Comment puis-je tester la page qui n'affiche que bonjour (ma fonction) ? et comment le graphiste peut-il tester la page vide mais avec un fond rouge ? L'idée étant qu'une fois non tests faits nous puissions commiter tout cela sera le master ?
    Si tu ne veux pas interferer avec le travail d'un de tes collègues tu peux aussi travailler sur ta propre branche... Dans tous les cas tu pourras, si besoin, merger tout ou partie de la branche de travaux communs (locale et partagée) sur ta branche de travail... et lorsque tu souhaiteras partager ton travail tu pourra merge celui-ci sur la branche de travaux communs.

    a+
    Philippe

  7. #7
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    ok, mais concrètement cela s'organise comment ?

    Je prends un exemple concret : Dans le dépôt (situé dans le dossier /Depot), j'ai le master et 2 banches : feature_ et design_1

    Je veux travailler sur la branche feature_1 et le graphiste veut travailler sur la branche design_1

    Comment faisons nous ? Nous n'allons tout de même pas modifier les fichiers du dossier /Depot ?
    A mon sens, il faut que je fasse un git clone du depot dans mon dossier perso (/Developpement) pour travailler. Le graphiste fait la même chose, un git clone du depot dans son dossier /Graphiste.
    Une fois que nous avons fini nos modifications, nous les poussons sur les branches du depot et finissons par un merge de ces branches pour intégrer nos modifications au master.

    J'ai bon ?

  8. #8
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Tu parles de dossier... notion que tu n'a pas avec git !

    Tu n'as qu'un seule espace de travail pour toute tes branches... pour changer de branch tu fais un checkout qui modit ton espace de travail.

    Donc admettons vous avez créés les branches
    dev
    design
    Et, ces branches sont partagées (i.e. accessibles depuis tout le monde en traquant la branch sur le serveur)

    De ton côté 'dev' tu as fait un checkout de dev... aucours de ton travail tu vas faire de commits ! Lorsque tu penses que ton travail pourrait être récupéré tu pousses tes commit sur le serveur.
    Du côté 'design' ton collègue fait la même chose.
    => vos travaux sont partagés mais non synchronisé

    Ton designer veut récuperer ton travail => il reste sur sa branch 'design' mais va puller+merger la branch 'dev' que tu as partagé (push). Dans son espace de travail il a donc ses modifs et les modifs du dévelopeur. Il a donc intégré les modif du développeur. Il s'est donc synchronisé sur ton travail. S'il pousse son travail de synchronisation sera partagé...
    Biensur côté 'dev' tu peux faire exectement la même chose avec la branche 'design' poussé par ton collègue.

    Pour faire un release : toi ou ton designer merge les différentes branches sur master et les pousse sur le serveur...

    Le développeur et le designer peuvent continuer à travailler sur 'dev' et 'design'... mais s'ils souhaitent être synchronisé avec master il devront faire le merge de master sur leur branche respective...

    Je ne sais pas si j'ai été clair : des branches / des checkout / un seul espace de travail / des synchros entre branches avec des merges ou autres commandes... sans oublier les pull/push pour synchroniser son dépôt local (i.e. son clone) avec le serveur !

    a+
    Philippe

  9. #9
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    Il n'y a peut être pas de dossier dans Git, n'empêche que lorsque tu crées un dépôt il faut bien aller dans un dossier de ton serveur, non ?

    Donc sur mon serveur :
    Je vais dans le dossier /home/www/depot et j'exécute fait un git init pour créer le dépôt

    Ensuite, pour créer l'espace de travail du dev, je crée le dossier /home/www/dev, je me déplace dans ce dossier et j'exécute "git clone /home/www/depot" afin de récupérer le dépôt et pouvoir développer mes features (pour cela, j'irai modifier les fichiers du dossier /home/www/dev)

    Puis, pour créer l'espace de travail du graphiste, je crée le dossier /home/www/design, je me déplace dans ce dossier et j'exécute la même commande pour que le graphiste ait son propre espace de travail

    Ainsi, chacun aura son propre espace de travail (situé dans son dossier respectif), travaillera sur sa branche dans son espace de travail et, une fois son taff terminé, pushera sa branche sur le dépôt...

    Si c'est pas ça, c'est que

  10. #10
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Citation Envoyé par grinder59 Voir le message
    Il n'y a peut être pas de dossier dans Git, n'empêche que lorsque tu crées un dépôt il faut bien aller dans un dossier de ton serveur, non ?
    Tes dossiers cibles importent peu... Tu pourrais très bien imaginer (si tu avais plusieurs casquettes fonctionnelles) travailler dans le même dossier... En changeant de branche tu pourrais alors mettre à jour ton espace de travail pour tes travaux de dev/design/etc...

    Pour le reste je ne comprend pas comment tu veux travailler : si tu ne gardes qu'une seule branche (i.e. la master) tes différents clones vont être bloqués (virtuelement) en cours de sprint : en résumé, dès ton premier push depuis dev les clones test/demo/prod ne devront plus faire de push tant que ton travail de dev ne sera pas fini (Pour faire un push depuis test/demo/prod il faut au préalable faire un pull qui récupèrerai ton travaikl en cours... )... Ton process à une branche est donc séquentiel et trop rigide !

    Le travail sur branche dédiée te permet de faire sauter ce verrou : dev/design/test/demo/prod peuvent alors faire des commit/merge/pull/push en //... et tu synchronises les différentes branches lorsque tu en as besoin !

    a+
    Philippe

Discussions similaires

  1. Conseil pour l'utilisation d'une LinkedBlockingQueue
    Par nonoRedDevils dans le forum Langage
    Réponses: 4
    Dernier message: 22/02/2012, 10h51
  2. demande de conseil pour l'utilisation du BIRT
    Par amarige dans le forum BIRT
    Réponses: 2
    Dernier message: 05/12/2007, 22h28
  3. [1.x] [Frameworks] Conseils de Framework à utiliser pour PHP
    Par nico33307 dans le forum Symfony
    Réponses: 7
    Dernier message: 27/09/2007, 18h02
  4. [AS2] Conseils pour une bonne utilisation de la POO
    Par guy2004 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 9
    Dernier message: 20/03/2006, 08h24
  5. Réponses: 3
    Dernier message: 24/12/2004, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo