Journal Un livre sur Git passe sous CC By-Sa + Questions

Posté par (page perso) . Licence CC by-sa
Tags :
22
9
oct.
2013

Un livre en anglais sur Git a été libéré sur GitHub 5 après sa rédaction. By Scott Chacon about how the Git source code control system stores files and revisions.
https://github.com/pluralsight/git-internals-pdf/releases

Lien direct vers le PDF
https://github.com/pluralsight/git-internals-pdf/releases/download/v2.0/peepcode-git.pdf

Il est désormais sous licence Creative Commons By-Sa
https://github.com/blog/1640-git-internals-pdf-open-sourced

Double question :
- Est-ce que c'est un bon livre d'après vous ? (vous c'est les spécialistes de Git :))
- Si oui est-ce que cela vaut le coup de le traduire en français ? (on peut supposer qu'un développeur francophone maîtrise un minimum l'anglais non ? mais bon peut-être pas forcément et puis pourquoi pas en direction des plus jeunes ?)

  • # Internals... mouais

    Posté par . Évalué à 5.

    J'ai parcouru le livre rapidement donc, j'ai pu ne pas voir certains passages.

    Le livre est très intéressant pour connaitre Git d'un point de vue de l'utilisateur éclairé, mais il s'agit principalement d'un livre destiné à apprendre correctement Git, et non pas d'un livre décrivant les internals de Git (comme la façon dont sont créés les packfiles, le format de l'index, le protocole utilisé par les commandes push et pull, …). Le contenu est à peu près le même, en un peu plus simple, que l'excellent livre "Pro-Git" (http://git-scm.com/book) du même Scott Chacon.

    En ce qui concerne une éventuelle traduction, c'est en effet une bonne idée, mais pourquoi ne pas plutot traduire "Pro-Git" qui est plus complet ?

    • [^] # Re: Internals... mouais

      Posté par . Évalué à 1.

      Oui je pertinente cette réponse. Pro-git est vraiment pas mal. Voici sa licence :

      All content under the Creative Commons Attribution Non Commercial Share Alike 3.0 license.

      • [^] # Re: Internals... mouais

        Posté par . Évalué à 4.

        Ben du coup tu réponds aussi à la question : parce que spalibre, tout simplement.

        Regarde qui est l'auteur du journal, à mon avis il veut du libre.

        splash!

        • [^] # Re: Internals... mouais

          Posté par . Évalué à 1.

          Pas libre, c'est juste, simplement parce que pas vendable. Tu peux toujours le traduire et le distribuer gratuitement, ce qui est probablement l'objectif de l'auteur.

          • [^] # Re: Internals... mouais

            Posté par . Évalué à 2.

            Tu as déjà entendu parler de framabook ?

            splash!

            • [^] # Re: Internals... mouais

              Posté par . Évalué à 2.

              Je n'avais pas fait attention au nom de l'auteur du journal :)
              Donc oui, pour ramener des deniers dans les caisses de Framasoft c'est rapé.

              • [^] # Re: Internals... mouais

                Posté par . Évalué à 4.

                pour ramener des deniers dans les caisses de Framasoft

                Ou tout simplement parce que l'encre et le papier c'est pas gratuit. /o\

                splash!

    • [^] # Re: Internals... mouais

      Posté par . Évalué à 6.

      En ce qui concerne une éventuelle traduction, c'est en effet une bonne idée, mais pourquoi ne pas plutot traduire "Pro-Git" qui est plus complet ?

      Pro-Git est déjà traduit en plusieurs langues dont le français : http://git-scm.com/book/fr

    • [^] # Les applications insoupçonnées de git, voilà un sujet intéressant

      Posté par . Évalué à 1.

      Tout à fait d'accord.

      "*git internals*" c'est un truc qui était intéressant à l'époque où pour faire des choses puissantes avec git, il fallait sortir sa bite et son couteau.

      Mais depuis, des gens intelligents sont allé fouiller dans les entrailles de git (avec ce livre peut-être puis les pages man) et ont fait entre autres smartgit, sourcetree et github

      Donc connaître les entrailles est aujourd'hui utile à moins de monde… et les gens pour qui ça restent utile parlent ou devraient parler anglais.

      Ce qui serait intéressant par contre, c'est de parler des nouveaux usages de git. Moi je vois plein de projets qui, parce qu'ils se basent sur git font des trucs beaucoup plus facilement que ce qu'on devait faire avant que git n'existe.

      Typiquement HomeBrew - The missing packager for macos x, c'est presque aussi bien que l'illustre apt get / apt cache (bon, ça ressemble plus à portage vu que c'est basé source, mais ça c'est un détail technique) et pourtant ça n'a à l'évidence nécessité qu'une fraction de l'effort qui a été fourni pour apt-get. Pourquoi ? Grâce à git notamment. (Et Ruby).

      Autre exemple : grâce à git, github, ruby et pathogen.vim, on peut faire en deux commandes ce qui nécessitait un temps incroyable auparavant

      $ git clone https://github.com/square/maximum-awesome
      $ rake

      Dernier exemple : git est parfait pour l'administration système. Est-ce déjà utilisé systématiquement ?

      • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

        Posté par . Évalué à 1.

        Par exemple, avec un répertoire qui contient l'arbre git des fichiers de configuration (avec diff, messages de commit, etc), et un push qui envoie tout ça dans etc/ ?

        • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

          Posté par (page perso) . Évalué à 4.

          C'est pas franchement git qui a inventé le concept de la gestion des fichiers de configuration sous un système de gestion de versions (cf. ce vieil article de 2000).

          • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

            Posté par . Évalué à 1.

            Oui, mais c'est peut-être lui qui l'a mis à la portée de tous…

            • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

              Posté par (page perso) . Évalué à 2.

              à la portée de tous…

              Non, juste à la mode. Il y a eu bien d'autres systèmes avant git et qui permettaient de gérer le source aussi bien mais en mode centralisé.

              • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                Posté par . Évalué à -2.

                Non, juste à la mode. Il y a eu bien d'autres systèmes avant git et qui permettaient de gérer le source aussi bien mais en mode centralisé.

                Ben si c'est infinment plus pratique parce que c'est décentralisé et que les outils basés sur git sont meilleurs , c'est pas une question de mode, c'est une question d'abaisser les barrières à l'adoption.

                Je crois pas du tout que ce soit un hasard que https://github.com/revans/bash-it n'existe que depuis peu et depuis git, alors que le besoin d'un truc comme ça et les outils de gestion de source existent depuis bien longtemps.

              • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                Posté par . Évalué à 2.

                Non, juste à la mode.

                Mauvaise foi détectée ;)

                Il y a eu bien d'autres systèmes avant git et qui permettaient de gérer le source aussi bien mais en mode centralisé.

                Qui permettent de gérer de façon satisfaisante, ok (encore que ce soit un avis personnel).

                Mais aussi bien, je veux bien des noms, qu'on se marre un peu!

                Je me permet même de donner en exemple un avantage qui me semble très important. Un DVCS permet, pour un logiciel libre, de contribuer très facilement et faire une évolution ou une correction sans avoir demander un accès en écriture à un dépôt (système des pull-requests), ce qui est rarement donné si tu n'as encore jamais contribué…

                PS : je sens ce fil partir en troll…

                • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                  Posté par (page perso) . Évalué à 1.

                  Je vais essayer de ne pas marcher dedans :)

                  On parlait de gestion des fichiers de configuration d'une machine à la base et dans ce cas, l'intérêt d'une gestion décentralisée est moins flagrant.
                  Je suis d'accord que, pour ce qui est d'un logiciel libre où la gestion des droits en écriture et peut devenir cauchemardesque, l'intérêt devient indéniable.

                  • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                    Posté par . Évalué à 3.

                    On parlait de gestion des fichiers de configuration d'une machine à la base et dans ce cas, l'intérêt d'une gestion décentralisée est moins flagrant.

                    Disons que par exemple, ce matin, je viens de me rendre pour la première fois de ma vie (ça s'arrose) dans $ cd /etc/nginx

                    J'ai fait un petit git init et ait commité la configuration de base qui marchait avant de faire mes changements. Euh ben c'est quelque-chose qui casse peut-etre pas 3 pattes à un canard d'un point de vue technique, mais c'est hyper rassurant de savoir que tout est aussi simplement sous (version-)contrôle. Et qu'ensuite éventuellement je peux partager sur github et que ça peut être un jour aussi utile que https://github.com/revans/bash-it

                    Et je ne crois pas que j'aurais fait ça si j'avais eu à modifier ma variable CVSROOT ou installer un serveur Subversion. Toi peut-être, mais moi non.

                    • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                      Posté par . Évalué à 2.

                      Tu ne connais pas etckeeper ?

                      • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                        Posté par . Évalué à 0.

                        J'avoue que non.

                        Et que maintenant que je connais grace à https://help.ubuntu.com/10.04/serverguide/etckeeper.html je crois que je vais quand même rester à git.
                        Pourquoi utiliser un outil supplémentaire à apprendre et qui fait à peine mieux (voire plutôt moins bien) la même chose que je fais un outil générique que je connais déjà ?

                        Par exemple, c'est pas etckeeper qui me permettra de gérer mes fichiers de configuration bash (c'est bash-it, basé sur git) ou d'avoir un vim customisé (c'est maximum-awesome cité plus haut)

                        • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                          Posté par . Évalué à 5.

                          Pourquoi utiliser un outil supplémentaire à apprendre et qui fait à peine mieux (voire plutôt moins bien) la même chose que je fais un outil générique que je connais déjà ?

                          etckeeper permet d'utiliser git. Donc il fera la partie versionning aussi bien.

                          Par ailleurs, etckeeper a un avantage face à un simple git. Il va commiter avant et après chaque utilisation d'apt. Donc si une mise à jour change un comportement ou t'écrase quelque chose c'est très facile de revenir en arrière (les .dpkg-old le permettent aussi, mais pas sur plusieurs versions successives).

                          Et tu gardes la puissance de git, vu que c'est un repo git (d'autres SCM sont possibles, si tu préfères). Si tu modifies ton /etc/nginx ou ton /etc/bind, tu peux commiter tes changements à la main, histoire d'avoir un commit lisible et pas un message générique "auto commit before apt run" (ou un truc du genre).

                          Par exemple, c'est pas etckeeper qui me permettra de gérer mes fichiers de configuration bash (c'est bash-it, basé sur git)

                          Tu veux bien utiliser un front end pour bash, mais pas pour etc ?

                          Le FN est un parti d'extrême droite

                    • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                      Posté par (page perso) . Évalué à 2.

                      Et je ne crois pas que j'aurais fait ça si j'avais eu à modifier ma variable CVSROOT ou installer un serveur Subversion. Toi peut-être, mais moi non.

                      C'est bien pour ça que j'ai donné un lien sur un article ne traitant ni de CVS, ni de Subversion mais de RCS qui lui est orienté vers la gestion des version d'un fichier unique (cf. )

                      • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

                        Posté par . Évalué à 1.

                        Ah, plusieurs choses

                        • mea culpa , j'ai fait l'erreur commune mais énervante de lire ta réponse trop vite
                        • merci de tes précisions sur RCS
                        • mais du coup je persiste à dire que c'est très superficiel de dire que git est principalement un effet de mode car il permet de faire ce qui existait à peu près avant
                        • en effet, ce qui fait la différence entre un logiciel techniquement impressionnant (l'ex mozilla browser suite par exemple) et un succès populaire (Firefox, au début un simple fork avec des trucs en moins) c'est pour moi que les seconds se sont acharnés à réussir plein de petits détails importants
                        • exemple RCS orienté fichier ? Mais non, il fait un truc orienté arborescence. C'est évident pour bash-it, vim maximum awesome, mais même pour ma configuration nginx
                        • il faut aussi que ça marche facilement en local
                        • il faut aussi que je puisse synchroniser facilement entre deux puis trois machines persos
                        • ensuite pour que des trucs comme bash-it, vim maximum awesome, home brew,… puissent émerger, il fait qu'il y ait des sites très bien foutus donc très populaires comme github. On ne va pas se faire chier à se lancer dans de tels projets si on sait à l'avance qu'on aura ni les contributeurs ni les utilisateurs requis.

                        Conclusion : ce n'est pas du tout un hasard si git à réussi la ou plein d'autres à sa place auraient pu réussir

          • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

            Posté par . Évalué à 6.

            Je voudrais pas dire mais VMS faisait du versioning de fichier de facon native il y a bien longtemps.

      • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

        Posté par . Évalué à 2.

        Donc connaître les entrailles est aujourd'hui utile à moins de monde… et les gens pour qui ça restent utile parlent ou devraient parler anglais.

        Pourtant, c'est LA différence qui passer du mode "Oh, git c'est peut-être puissant mais c'est compliqué" à "Oh, git c'est pas si difficile que ça…"

      • [^] # Re: Les applications insoupçonnées de git, voilà un sujet intéressant

        Posté par (page perso) . Évalué à 2.

        Dernier exemple : git est parfait pour l'administration système. Est-ce déjà utilisé systématiquement ?

        Tu veux dire, pour gérer les fichiers de configuration d'une station de travail? Je ne vois pas trop en quoi ce serait un nouvel usage de GIT, à vue d'œil cela doit faire depuis au moins 20 ans que des sysadmins font ça — avec un autre SCM, forćement.

        Ce qui compte, c'est surtout d'avoir un bon Makefile:

        https://bitbucket.org/michipili/bsdmakepscripts/src/00afe03a2f47229533172372a7fcba4f7d1399b2/misc/conf.freebsd.mk?at=master

  • # Version ePub

    Posté par (page perso) . Évalué à 2.

    Vu que les sources sont disponibles, est-il possible de les « compiler » dans un autre format que PDF comme ePub  ? Je ne lis pas vraiment le ruby, donc un peu de mal avec le Rackfile.

  • # "vous c'est les spécialistes de Git :)"

    Posté par . Évalué à 2.

    Si par "spécialistes", il faut comprendre un utilisateur aguéri depuis longtemps alors
    je peux répondre que : oui c'est un livre intéressant par son approche pratique même s'il est plus léger que ProGit
    . Par léger, j'entends qu'il approfondit moins les sujets qu'il aborde. En gros, c'est le défaut
    de ses qualités qui sont d'aller à l'essentiel. Les cas d'utilisations courants y sont expérimentés à la lecture, ce qui permet au novice d'en comprendre directement les résultats.
    Et j'aime bien cet aspect là car maintenant c'est ce que l'on demande
    à certains livres : avoir rapidement accès à l'information, quitte dans un second temps à acheter un livre qui rentrera
    dans les détails.
    Quant à la traduction même si je lit couramment l'Anglais j'apprécie néanmoins de pouvoir lire dans ma langue natale.
    Si je devais faire un reproche essentiel, ce serait la largeur utilisée pour la lecture : seule la moitié gauche est lisible pour laisser place à des notes sur la moitié droite. Pour une dizaine de notes j'ai trouvé que cela impacte fortement le confort de lecture (ce qui pour moi est primordial), à moins que la version papier soit organisée différemment.

    DL

  • # Ah ouais, quand même !

    Posté par . Évalué à 2.

    Je lis le PDF cité dans le journal, et tombe sur ce passage (p.20) :

    The current record for number of commit parents in the Linux kernel is 12 branches merged in a single commit !

    Euh… OK ! C'était vraiment utile ou quelqu'un a voulu péter un record ?!? J'ai du mal à voir l'utilité de fusionner 12 branches d'un coup (mais je veux bien croire que la fusion de plusieurs branches en même temps est parfois nécessaire/utile/pratique/…)

    • [^] # Re: Ah ouais, quand même !

      Posté par . Évalué à 2.

      peut etre que c'est Linus qui a voulu tenter le coup lors d'une fenetre de developpement? Il doit avoir legerement plus que 12 branches a fusionner…

Suivre le flux des commentaires

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