Forum général.cherche-logiciel [GIT] Proxy git / Composer / Symfony

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
-1
8
mar.
2013

Bonjour à tous,

Je développe un projet (Symfony) qui utilise plusieurs librairies versionnées sous GIT. Le problème est qu'à chaque fois que je récupére le projet, je doit cloner la 15aine de projet GIT associés.

Ce dernier point est fait automatiquement : Pour cela j'utilise composer.phar.

Par contre la plus part des librairies sont récupéré sur packagist et le dépôt sur GitHub. Le temps de clone est particulièrement long (facilement 1/4 d'heure).

Je me demandais s'il n'était pas possible d'avoir un proxy GIT. Le principe serait que chaque clone de GitHub et redirigé vers un repository de mon réseau local. S'il n'existe pas, le serveur clone, et cache le dépôt, sinon il pull et cache le dépôt.

Le clone se ferait alors de façon plus rapide, car il serait dans mon réseaux local. En cas de disparition d'un de ces projets d'Internet, j'aurais en plus une copie du dépôt dans mon réseau.

Pour le coté composer, il existe broker, mais ce dernier ne fait que des archives, et non des dépôts GIT. J'aurais préféré garder une copie du dépôt git.

Connaissez-vous un tel programme ?

Merci d'avance.

  • # un script shell ou avec un makefile pour gerer les dependances

    Posté par  . Évalué à 2. Dernière modification le 08 mars 2013 à 13:53.

    exemple avec un script shell

    case $1 in
      init)
        git clone http://github.com/projetA
        git clone http://guthub.com/projetB
        ...
      ;;
      refresh)
        git pull projetA
        git pull projetB
        ...
      ;;
      purge)
        rm -r projetA
        rm -r projetB
        ...
      *)
        echo "Use with : $0 <init|refresh|purge>"
      ;;
    esac
    
    
  • # Proxy HTTP

    Posté par  (site web personnel) . Évalué à 1.

    À ma connaissance, Git sait utiliser plusieurs protocoles pour accéder aux dépôts distants.

    Il y a notamment SSH : si tu fais du Git avec SSH, je pense que c'est mort pour avoir un proxy ; de même pour HTTPS.

    Par contre, j'imagine que tu peux utiliser un simple proxy HTTP si tu fais tes "pull" en HTTP…

    • [^] # Re: Proxy HTTP

      Posté par  (site web personnel) . Évalué à 2.

      je soutiens la thèse du proxy …. j'avais un soucis, composer tentais tjs d'acceder en git en premier…
      mais avec une petite config au niveau de mon composer.json je peux lui dire par quoi commencer :

      il m'a suffi d'ajouter

      "config": {"github-protocols": ["http", "https", "git"]}

      en espérant que ça aide

      • [^] # Re: Proxy HTTP

        Posté par  (site web personnel) . Évalué à 2.

        Le proxy est bien capable de cacher le protocole de GIT quand il passe en HTTP ?

        Sinon ce que j'aimerai aussi c'est avoir un clone au cas où le projet disparaît …

  • # clone d'un clone

    Posté par  (site web personnel) . Évalué à 1.

    Sinon, à part l'histoire du proxy, j'ai une autre idée :

    1/ tu maintiens des clones de tes dépôts sur un serveur interne centralisé, qui fait des "pull" et des "push" très régulièrement (genre toutes les 2 minutes)

    2/ tu fais tes "pull" et tes "push" sur les postes de travail à partir de ces clones

    • [^] # Re: clone d'un clone

      Posté par  (site web personnel) . Évalué à 2.

      C'est une bonne idée. De plus je n'ai besoin que de la partie pull. Je ne pousse pas sur le dépôts symfony.

      Ce qui aurait été super c'est d'avoir quelque chose qui le fait automagiquement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.