Forum général.général Ya-t-il des barbus dans la salle ( à propos de GIT).

Posté par  .
Étiquettes : aucune
0
19
oct.
2009
Bonjour.

A la recherche d'un gestionnaire de vrsions, je me suis ms à tester GIT. Ce que j'en ai vu me plait bien : très simple à prendre en main, et il ne fait rien de plus que ce qu'on lui demande, mais il le fait bien.

Par contre je n'ai pas encore réussi à comprendre un petit truc : est-il possible d'utiliser le protocole http(s) pour faire un push vers un référentiel disponible sur le web ? Le but est de pouvoir synchroniser un référentiel public à partir d'une copie de travil privée derrièer un proxy.

Si GIT n'en est pas capable, en conaissez-vous un qui le fasse ?

Merci d'avance.
  • # Oui

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

    C'est possible, autre question ? :)

    http://www.kernel.org/pub/software/scm/git/docs/git-push.htm(...) parle entre autre de https://
    • [^] # Re: Oui

      Posté par  . Évalué à 4.

      Merci ... je ne sais pas comment mais je suis passé à côté :(.

      Il y a bien une autre question : côté serveur public ça s'interface bien avec un Apache ? (de mémoire me semble-t-il, il est possible d'utiliser un serveur HTTP Git mais je souhaiterais un peu plus de précisions).

      Il y a un doc ici ( http://www.kernel.org/pub/software/scm/git/docs/v1.6.5/howto(...) ), mais je voulais savoir comment snt gérés les droits d'accès au référentiel : est-ce au niveau d'Apache qu'il faut définir les droits de modifier le référentiel ? Y a-t-il des pièges à éviter ? Mon seul retour d'expreience pour ce genre d'outil est la mise en place d'un repository svn via http (en passant par un reverse proxy) et pour git j'ai un peu de mal à me faire une idée sur la mise en place et la façon de le paramétrer et l'utiliser dans ce contexte.

      C'est un peu tard pour m'y mettre ce soir mais je pense que je tenterai l'expérience demain.
    • [^] # Re: Oui

      Posté par  . Évalué à 0.

      Merci ... je ne sais pas comment mais je suis passé à côté :(.

      Il y a bien une autre question : côté serveur public ça s'interface bien avec un Apache ? (de mémoire me semble-t-il, il est possible d'utiliser un serveur HTTP Git mais je souhaiterais un peu plus de précisions).

      Il y a un doc ici ( http://www.kernel.org/pub/software/scm/git/docs/v1.6.5/howto(...) ), mais je voulais savoir comment snt gérés les droits d'accès au référentiel : est-ce au niveau d'Apache qu'il faut définir les droits de modifier le référentiel ? Y a-t-il des pièges à éviter ? Mon seul retour d'expreience pour ce genre d'outil est la mise en place d'un repository svn via http (en passant par un reverse proxy) et pour git j'ai un peu de mal à me faire une idée sur la mise en place et la façon de le paramétrer et l'utiliser dans ce contexte.

      C'est un peu tard pour m'y mettre ce soir mais je pense que je tenterai l'expérience demain.
    • [^] # Re: Oui

      Posté par  . Évalué à 0.

      Merci ... je ne sais pas comment mais je suis passé à côté :(.

      Il y a bien une autre question : côté serveur public ça s'interface bien avec un Apache ? (de mémoire me semble-t-il, il est possible d'utiliser un serveur HTTP Git mais je souhaiterais un peu plus de précisions).

      Il y a un doc ici ( http://www.kernel.org/pub/software/scm/git/docs/v1.6.5/howto(...) ), mais je voulais savoir comment snt gérés les droits d'accès au référentiel : est-ce au niveau d'Apache qu'il faut définir les droits de modifier le référentiel ? Y a-t-il des pièges à éviter ? Mon seul retour d'expreience pour ce genre d'outil est la mise en place d'un repository svn via http (en passant par un reverse proxy) et pour git j'ai un peu de mal à me faire une idée sur la mise en place et la façon de le paramétrer et l'utiliser dans ce contexte.

      C'est un peu tard pour m'y mettre ce soir mais je pense que je tenterai l'expérience demain.
      • [^] # Re: Oui

        Posté par  . Évalué à 2.

        Oups, désolé pour le multiple commentaire ...... Mauvais rafraichissement de fenetre mozilla :(
  • # Mercurial

    Posté par  . Évalué à 3.

    Encore plus simple à prendre en main, administration quasi-nulle : pas besoin de git repack/prune
    Mercurial utilise un protocole basé sur http, support du push inclus. Par défaut, pour la publication de dépôt, c'est du https.
    Git est pas très efficace over http, pour la publication de dépôt, il est recommandé de proposer un accès via le protocole Git avec git-daemon. En revanche, pas de push (enfin si, mais sans authentification donc ça revient au même), faut passer par autre chose (comme ssh par exemple) mais c'est pas génant pour un dépôt en lecture seule.
    Tu as pléthore de CGI pour publier un dépôt Mercurial (hgwebdir.cgi) ou Git (gitweb.cgi inclus dans la distribution officielle, mais également gitosis, cgit etc ...), donc ça s'interface bien avec un serveur web comme Apache ou lighty.

    J'utilise régulièrement les deux, git est extrêmement complet mais plus "rugueux" en terme d'interface utilisateur même si ça c'est beaucoup amélioré depuis, Mercurial offre une interface utilisateur plus cohérente/saine, beaucoup de fonctionnalités équivalentes à Git sont proposés à travers des extensions (souvent incluses dans la distribution standard). Après, c'est les goûts et les couleurs, les deux sont très bien.
    • [^] # Re: Mercurial

      Posté par  . Évalué à 2.

      C'est quoi le souci ? Moinsser je veux bien, mais argumenter derrière, c'est mieux.
    • [^] # Re: Mercurial

      Posté par  . Évalué à 3.

      Merci, je comptais le tester de toutes façons ...
      Git est pas très efficace over http,
      J'ai l'impression qu'il n'a pas été fait pour ça .... mais ce n'est qu'une impression. Autre question concernant la façon de travailler de Mercurial : stocke-t-il un diff des fichiers ? Est-il possible de versionner des fichiers binaires efficacement ?
      • [^] # Re: Mercurial

        Posté par  . Évalué à 4.

        Ce n'est pas qu'une impression, il n'a pas été conçu pour être publié via http, d'où le protocole homonyme.
        Tu as peut-être lu l'introduction de Git présentant les types d'objets de bases: blob, tree, commit et tag. Tu retrouves les mêmes concepts dans Mercurial sous les noms: file, manifest, changeset et tag. Comme dans Git, chaque objet est identifié par un checksum SHA, en interne ça fonctionne quasiment pareil.
        Effectivement, Mercurial conserve des diffs des fichiers (texte ou binaire, il ne fait pas la différence) ou delta selon la terminologie de Mercurial.
        Quant au versionning de fichiers binaires, les VCS sont conçus pour suivre des fichiers humainement lisible, et les concepts de diffs/merge leurs sont difficilement applicables. C'est même le seul cas à ma connaissance où un VCS traditionnel s'en sort mieux que les VCS distribués de par l'absence de la notion de verrouillage de fichiers (fusionner des modifications concurrentes d'une image par exemple n'a aucun sens). Comment gérer le versionnage des fichiers OpenDocument ? un changement de lettre et pouf tu stockes quasiment tout le document à cause de la compression, comment effectuer un diff/merge efficace ?
        Si ça t'intéresse un article sur le versionnage des fichiers odt dans mercurial/git
        http://www-verimag.imag.fr/~moy/opendocument/

        D'après les benchmarks de git, mercurial est plus efficace que git sur le versionnage de fichiers binaires (c'est avec le pull et le merge, les seuls domaines où mercurial dépasse git niveau performances).
        http://git.or.cz/gitwiki/GitBenchmarks
        • [^] # Re: Mercurial

          Posté par  . Évalué à 2.

          Tu as peut-être lu l'introduction de Git présentant les types d'objets de bases: blob, tree, commit et tag.
          oui.
          u retrouves les mêmes concepts dans Mercurial sous les noms: file, manifest, changeset et tag. Comme dans Git, chaque objet est identifié par un checksum SHA, en interne ça fonctionne quasiment pareil.
          OK, de toute façon je ne pense pas qu'il y ait 10000 façons de faire ....

          Si ça t'intéresse un article sur le versionnage des fichiers odt dans mercurial/git
          http://www-verimag.imag.fr/~moy/opendocument/

          Merci, effectivement que ça m'intéresse :). En fait le stockage de binaires m'intéresse pour pouvoir stocker des schémas d'analyse (schemas UML par exemple) d'un petit développement ou de tutoriels (que je compte diffuser quand ce sera prêt). Mon développement cera probablement fait avec Ruby/Rails, et j'ai vu à ce sujet comment faire avec Git (je ne pense pas que ça doit changer beaucoup avec Mercurial).

          Merci pour ces informations : ( +1 à tous ceux qui m'ont répondu). JE vais tester Mercurial : d'après ce que tu m'en dis il semble mieux adapté à ce besoin (j'utiliserai GIT dans d'autres circonstances : je vois déjà à quoi il pourra me servir).
  • # git-svn

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

    Si ça peut aider j'ai fait récemment de la doc pour un usage avec un dépôt svn existant

    http://www.crium.univ-metz.fr/docs/devel/git/

    la doc pour la config d'un serveur apache avec svn est ici

    http://www.crium.univ-metz.fr/docs/system/svn/
    • [^] # Re: git-svn

      Posté par  . Évalué à 2.

      Intéressant ce lien .... Merci. J'avais déjà pensé à ça. Cependant je préfèrerais ne pas avoir à maintenir 2 outils .... Mais ça peut me servir pour un autre référentiel perso que j'ai sous SVN ...

      +1 également.

Suivre le flux des commentaires

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