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 :

Plusieurs dossiers avec différents remote


Sujet :

GIT

  1. #1
    Membre régulier
    Profil pro
    Dév FrontEnd
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dév FrontEnd

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 114
    Points
    114
    Par défaut Plusieurs dossiers avec différents remote
    Bonjour,
    Je vous explique le contexte.
    Nous avons développé un CMS sur base de CakePhp 1.3, qui a son dépôt SVN.
    Lorsque nous débutons le développement d'un nouveau site, nous copions le CMS pour faire un dépôt SVN propre au projet.
    En cas de modification du coeur du CMS dans le cadre du projet, nous copions-collons manuellement les modifications sur le dépôt du CMS. Ce qui est déjà pas pratique, mais qui surtout ne permet pas de faire bénéficier les autres projets des corrections/améliorations apportées.
    Chaque projet a également ses spécificités (fonctionnelles et visuelles) qui font que son code doit évoluer et être versionné à part.

    L'idée est de basculer sur Git pour améliorer cette gestion et pouvoir apporter des modifications sur le coeur du CMS depuis n'importe quel projet et de pouvoir faire remonter ces modifications facilement dans les autres projets.

    Je me suis un peu documenté à propos des submodules, subtrees, subrepos, et j'ai lu des choses sur sparse-checkout mais je n'ai rien trouvé qui correspondrait à notre besoin, ou alors je suis passé à côté (Git a l'air tellement puissant que ça ne m'étonnerait pas).

    En gros, on a l'arborescence suivante :
    - app
    - cake
    - plugins
    - webroot

    L'idée serait d'avoir les dossiers cake et plugins dans le dépôt CMS et les dossiers app et webroot dans le dépôt de chaque projet (en réalité, c'est même plus complexe car certains sous-dossiers de app/ et webroot/ devraient être issu du CMS).


    Alors, la première question est toute simple : est-ce que Git nous permettrait de faire ce que nous souhaitons ?
    Si oui, la deuxième question est : comment procéder ?
    Je ne demande pas forcément un tutoriel complet mais au moins de savoir dans quelle direction partir car j'avoue être un peu perdu.

    Je vous remercie d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 608
    Points
    19 608
    Par défaut
    Si je comprends bien, vous avez développé un CMS maison qui se base sur CakePHP.

    Ce CMS maison sert à réaliser des projets pour vos clients.

    Vos projets consistent en fait à récupérer tout le code source du CMS maison et à le customiser.

    Quelle est la nature des modifications spécifiques que vous faites sur les projets clients ? Certaines de ces évolutions sont-elles contradictoires avec les évolutions effectuées sur le CMS maison.

    Votre problème est complexe parce qu'il y a confusion entre dépendances, configuration et développement.

    CakePHP est une dépendance de votre CMS maison.
    Vos projets clients sont des versions divergentes du CMS maison (ce qui pose de très lourds problèmes de gestion de code source, peut être que des évolutions à effectuer dans le CMS maison permettrait de rendre ce problème moins prégnant, configuration des CSS, modularisation des features, feature flipping, ... Peut être aussi que transformer votre CMS en dépendance des projets clients serait une bonne solution )


    Le SCM n'est probablement qu'une toute petite partie de la solution.
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  3. #3
    Membre régulier
    Profil pro
    Dév FrontEnd
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dév FrontEnd

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 114
    Points
    114
    Par défaut
    Merci Marco46 pour ta réponse.
    C'est un peu la conclusion à laquelle j'avais peur d'arriver.

    Tu sembles avoir bien cerné notre mode de fonctionnement et le problème qui se pose à nous.
    Les modifications sur les projets clients sont de deux types : de la pure customisation et des évolutions/corrections du CMS pouvant être reportées sur les autres projets.

    Je pense que l'on va dans un premier temps passer à Git mais en continuant de dupliquer notre CMS à la création du projet et ne le faisant évoluer pour chaque projet (tout en reportant certaines modifications, "à la main", dans le CMS).

    Comme tu l'as dit, CakePHP est une dépendance de notre CMS.
    Et notre CMS est une dépendance de nos projets clients (mais nous souhaitons pouvoir faire évoluer cette dépendance au sein de nos divers projets).

    J'avais pensé à Composer, mais ce dernier ne nous permettrait pas de toucher au CMS s'il est défini comme dépendance.
    Bref, j'ai encore à creuser mais merci encore pour ta réponse.
    Peut-être que d'autres auront des idées, je suis toujours preneur.

  4. #4
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 057
    Points : 1 532
    Points
    1 532
    Par défaut les branches
    Bonjour,

    Votre solution est effectivement complexe, mais sous GIT on peut gérer autant de branches que l'on désire,
    Une branche, un projet modifié.
    On peut considérer le CMS comme étant le coeur, on lui dédie un GIT complet avec gestion des branches
    pour les différentes versions si besoin.

    Pour tout nouveau projet, on pointe sur le CMS (cakePHP) en tant que submodule,
    un submodule n'est ni plus ni moins qu'un dépôt, mais comme qu'on inclut comme "partie" d'un projet si besoin.

    L'avantage c'est qu'on compartiment les évolutions.

    Symfony utilise ce mode de fonctionnement. par contre, attention aux mises à jour des projets,
    il faudra toujours penser à mettre à jour les submodules.

    C'est simple et efficace.

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  5. #5
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 608
    Points
    19 608
    Par défaut
    Citation Envoyé par pontus21 Voir le message
    Je pense que l'on va dans un premier temps passer à Git mais en continuant de dupliquer notre CMS à la création du projet et ne le faisant évoluer pour chaque projet (tout en reportant certaines modifications, "à la main", dans le CMS).

    [...]

    Et notre CMS est une dépendance de nos projets clients (mais nous souhaitons pouvoir faire évoluer cette dépendance au sein de nos divers projets).
    Après réflexion je pense que l'approche de Nathieb est plus cohérente. Le CMS maison n'est pas une dépendance de vos projets clients mais vos projets clients sont des branches de votre CMS maison.

    Donc vous avez en réalité besoin d'un seul repo pour tout le code. Et ça sera d'autant plus facile de propager les modifications de la branche principale vers les branches clientes à coup de git merge. A vous de passer un maximum d'éléments en configuration pour éviter les divergences de code. Le cas le plus complexe à gérer et source d'erreur devenant alors seulement quand un git merge provoque un conflit.

    Vous pouvez du coup stocker les configurations sur un autre repo.
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/02/2016, 15h30
  2. ajout de plusieurs lignes avec différentes dates
    Par slayer07 dans le forum Développement
    Réponses: 5
    Dernier message: 09/11/2012, 14h54
  3. Plusieur dossiers avec VirtualHost
    Par BamBi25 dans le forum Apache
    Réponses: 25
    Dernier message: 13/06/2009, 14h58
  4. Plusieurs boutons avec différentes ouvertures
    Par zoom61 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/03/2007, 12h24
  5. Changer plusieur style avec des IDs différents?
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2005, 15h33

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