Darcs 2.5 arrive

Posté par  . Modéré par Xavier Teyssier.
Étiquettes :
21
31
oct.
2010
Ligne de commande
Darcs, le système de gestion de versions distribué (DVCS) interactif et malin vient de sortir en version 2.5.

Darcs se distingue d'autres systèmes de contrôle de versions distribués comme Git ou Mercurial par :
  • Un modèle sémantique et non chronologique des changements ;

  • Sa gestion native et intégrée du ramassage de cerises (cherry-picking) ;

  • Son interface interactive et simple.

Parmi les améliorations de la nouvelle version :
  • Record et pull sont plus rapides ;

  • Trackdown procède par bissection, comme git bisect ;

  • Pas mal d'améliorations de l'interface.

Darcs est aussi l'un des programmes écrits en haskell les plus importants (avec xmonad). Avec cette nouvelle version, le travail d'amélioration des performances de Darcs se poursuit. Les entrées-sorties ont été rationalisées, et l'enregistrement des changements ne perd plus de temps à réécrire des données déjà connues comme le faisaient les versions précédentes, d'où un « record » et un « pull » en temps constant plutôt que linéaire.

La version 2.8, la prochaine dans les tuyaux, est prévue pour mai 2011. Quelques améliorations déjà codées pourraient arriver à ce moment-là :
  • L'amélioration des performances des commandes annotate (git blame) et get (clone) ;
  • Un meilleur marquage des conflits ;
  • Une nouvelle commande, rebase, qui permet de gérer les cas où la fusion automatique ne permet pas de récupérer les changements que l'on souhaite (en pratique, les cas où git rebase est utile sont couverts par Darcs pull sans l'intervention de l'utilisateur ou Darcs amend-record en cas de conflit, il s'agit de gérer les cas plus difficiles).

Aller plus loin

  • # Hébergement

    Posté par  . Évalué à 4.

    Je ne connais pas du tout (j'essairais quand j'aurais le temps), mais pour ceux qui chercherais un hébergeur de projet Darcs il y a :
    http://patch-tag.com

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: Hébergement

      Posté par  . Évalué à 9.

      J'ai posté trop vite on peut trouver une liste ici :
      http://wiki.darcs.net/Hosting

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # ?

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

    > ramassage de cerises
    franchement, pourquoi tenter de traduire, littéralement, un terme qui n'a aucune signification en français ? D'ailleurs on le voit bien puisque sans la parenthèse c'est incompréhensible.
    • [^] # Re: ?

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

      D'ailleurs, « cherry picking, » je trouve pas ça plus clair, et j'ai la flemme de googler le terme (ça serait perdre du temps à ne pas troller ici !)
      • [^] # Re: ?

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

        je suis d'accord que ce ne soit pas plus clair, mais par contre c'est le nom de la commande...
        • [^] # Re: ?

          Posté par  . Évalué à 3.

          > je suis d'accord que ce ne soit pas plus clair, mais par contre c'est le nom de la commande...

          C'est le nom de la commande dans git ou hg, qui ont besoin d'une commande spécifique. Dans darcs, c'est juste pull qui ne t'oblige pas à prendre les changements dans l'ordre chronologique. De plus, le traitement des changements que tu as sélectionnés n'a rien de particulier: tu n'as pas de merge à faire à l'arrivée, et les patches gardent leur identité. Ça permet de faire du cherry-picking entre des branches publiques qui marche sans problèmes.
    • [^] # Re: ?

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

      >>> franchement, pourquoi tenter de traduire, littéralement, un terme qui n'a aucune signification en français ?

      Je me suis posé la même question lors de la modération mais l'expression est mentionnée dans Wikipedia FR donc il y a une certaine légitimité à laisser la phrase de l'auteur de la news telle quelle.
      http://fr.wikipedia.org/wiki/Cueillette_de_cerises
      • [^] # Re: ?

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

        mouai, enfin c'est pas parce que c'est dans sainte wikipedia que ça en fait quelque chose d'utilisé ni même de vrai. Donc de là à trouver une "certaine légitimité"...

        Et d'ailleurs, cette page est en fait seulement une pure traduction de la version anglaise, sans aucune référence d'usage dans notre langue.
        Alors oui, quelqu'un a traduit cette page, le terme n'existant pas en français la traduction littérale est employée. Dans wikipedia et dans le but d'expliquer ce terme je comprend, mais de là à y voir un usage réel j'en doute fortement.
        Traduire ce qui peut l'être je suis pas contre, mais traduire à outrance, c'est à dire traduire des termes qui n'ont pas d'équivalents et réaliser une traduction littérale vide de sens, c'est ridicule.
        D'ailleurs, c'est typiquement un cas où sans la version anglaise / sans le retraduire c'est incompréhensible.

        D'ailleurs, concernant les systèmes de versions le problème de traduction est très important pour deux raisons :
        - beaucoup utilisent la ligne de commande / des outils calqués sur la ligne de commande, donc traduire revient à perdre le lien avec l'outils (à moins de traduire les commandes...)
        - comment traduire en français des termes comme commit / push, checkout / pull / rebase / fetch ? Quelqu'un ayant déjà utilisé un système de gestion francisé comprendra à quel point c'est déroutant / peu clair
      • [^] # Re: ?

        Posté par  . Évalué à 4.

        oui mais a part wikipedia, il y a pas d'autres références dans le monde de l'info ?

        Parce que sur wikipedia il y a certaine tentative de traduction qui me semble bien tirée par les cheveux et qui ne font pas l'unanimité.

        D'autant plus que la page fr est une trad de la version anglaise (même paragraphe, ...)

        In revision control

        In the jargon of revision control, cherry picking is used to describe the action of selecting which patches (or changesets, or commits) should be ported from one branch to another.[1][2][3]


        Dans la révision de contrôle

        Dans le jargon du contrôle de version, la cueillette de cerises est utilisé pour décrire l'action de sélection des patchs (ou changesets ou commits) devant être reporté d'une branche à l'autre [1],[2],[3].


        Hum "révision de contrôle", c'est google translate qui a traduit ?
        • [^] # Re: ?

          Posté par  . Évalué à 6.

          D'ailleurs la version financière officielle est "picorage" http://definition.actufinance.fr/picorage-8/ .

          Quelqu'un est motivé pour modifié l'article wikipedia ou mettre en bandeau comme quoi il est moisi.
          • [^] # Re: ?

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

            hum, intéressant
            Pour le coup, picorage, picorer décrit assez bien l'action réalisée, mieux que la traduction d'une expression.
            Maintenant je ne sais pas non plus comment on pourrait l'utiliser : "picorer des patchs" ça va encore je trouve, c'est assez clair. Par contre, "j'ai picoré 2 de tes commits" ça fait un peu plus étrange, mais pourquoi pas...
      • [^] # Re: ?

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

        Je chipote mais :
        — grâce à cette page wikipedia, je sais que je peux désormais dire « de nombreux erreurs logiques. »
        — la page est légitime jusqu'à ce qu'on demande qu'elle soit effacée. On trouvera bien un admin/modo/jenesaisquoi qui admettra que c'est pas très encyclopédique, tout ça.
    • [^] # Re: ?

      Posté par  . Évalué à 5.

      >> ramassage de cerises
      >franchement, pourquoi tenter de traduire, littéralement, un terme qui n'a aucune >signification en français ? D'ailleurs on le voit bien puisque sans la parenthèse c'est >incompréhensible.

      Je reconnais que c'est de la pure coquetterie sylistique la plus vaine.

      De toute façon, dans darcs le cherry-picking est automatique et implicite, donc on n'utilise pas beaucoup le terme. On récupère les changements des gens comme il nous plaît, point. Un peu comme le défragmentage à la grande époque de windows: les autres dvcs trouvent héroïque de cueillir des cerises, nous on apprécie le clafoutis, c'est tout.
    • [^] # Re: ?

      Posté par  (site web personnel, Mastodon) . Évalué à 6.

      Surtout que ramasser des cerise, ce serait plutôt cherry harvesting. En fait, dans la traduction employée, on perd l'idée de tri, de sélection, qui fait tout le sel de l'expression.

      Comme ça a été proposé plus haut, picorage est un très bon néologisme.
    • [^] # Re: ?

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

      franchement, pourquoi tenter de traduire, littéralement, un terme qui n'a aucune signification en français ? D'ailleurs on le voit bien puisque sans la parenthèse c'est incompréhensible.

      La traduction est particulièrement moisie mais elle est en plus discriminante envers toutes les dévelopeuses car tout le monde sait bien que les cerises ce ramassent avec la queue...

      ok, je sais où c'est ~~~~~~~> [ ]
  • # utilisation...

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

    Est-ce qu'il y a du monde qui utilise darcs pour de vrai ?
    Là où je bosse, on se pose la question depuis un moment d'abandonner svn (le besoin s'en fait de plus en plus sentir).
    Pour le moment, Bazaar est évidemment rejeté, git pourtant très intéressant et entrain de disparaître des choix (portabilité essentiellement...), mercurial a pour le moment de beaux jours devant lui (intégration dans les ide, version windows réellement fonctionnelle, simplicité - même si les branches locales alagit manquerait)
    Qu'en est-il de darcs ? Est-il réellement utilisable sur autre chose que linux (on a du linux et du windows), s'intègre-t-il dans eclipse, vs.net, etc ?
    Et aussi, est-il assez performant ? (quand on parle de bazaar on comprend les problèmes de performance...)

    Avez-vous des retours d'utilisation tout simplement ?
    • [^] # Re: utilisation...

      Posté par  . Évalué à 1.

      T'es sur qu'il y a pas de branches locales dans mercurial ?

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: utilisation...

        Posté par  . Évalué à 2.

        Le mode de fonctionnement recommandé est d'utiliser des clones. Mercurial est conçu pour faciliter ça. On travaille donc sur un dépôt local plus que sur une branche locale. Comme ce sont des "cheap copies" (qui utilisent des "hard links" au lieu de copier les fichiers), les clones sont en général rapides à réaliser.

        Mais dans certains cas, une branche locale est plus pratique. Il faut alors installer une extension non-officielle dans Mercurial :
        http://mercurial.selenic.com/wiki/LocalbranchExtension

        Désolé pour les anglicismes, même si au fond j'assume ce jargon technique non traduit.
        • [^] # Re: utilisation...

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

          mouai, faire des clones c'est quand même bien lourd, là où le but de faire des branches locales est très rapide, facile avec git (c'est un peu le mode de fonctionnement classique sous git, créer des branches pour chaque fonctionnalité, etc)
          Sans oublier que l'intégration de clones avec un ide devient vite bordélique.
          LocalBranch j'avais essayé, mais ça n'avait pas fonctionné comme souhaité. On voit bien que c'est différent et moins intégré.
          • [^] # Re: utilisation...

            Posté par  . Évalué à 3.

            À noter que sous git, il faut comparer ça aux bookmarks de hg.

            Je recommande la lecture suivante pour bien voir en quoi ça diffère et en quoi Mercurial permet plus :))

            http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-me(...)
            • [^] # Re: utilisation...

              Posté par  . Évalué à 2.

              Je note une différence entre darcs et hg, qui fait qu'avoir un clone au lieu d'une branche locale est moins coûteux dans darcs que dans hg: si on a deux clones distants, que l'on récupère localement, le système de cache de darcs fait qu'on ne récupère l'historique commun qu'une seule fois, soit aussi rapidement que si les clones étaient des branches locales d'un même dépôt.
        • [^] # Re: utilisation...

          Posté par  . Évalué à 2.

          Pour les branches locales, y'a l'extension bookmarks.
          • [^] # Re: utilisation...

            Posté par  . Évalué à 2.

            Les branches nommées marchent très bien aussi, à condition de faire *d'abord* un clone local et ne pas pousser depus celui-ci.
    • [^] # Re: utilisation...

      Posté par  . Évalué à 5.

      > Est-ce qu'il y a du monde qui utilise darcs pour de vrai ?

      Par rapport aux trois grands (git, hg, bzr), non. C'est le problème de l'effet réseau, plus/moins y'a de monde qui l'utilise, plus/moins on a envie de l'utiliser.

      > Qu'en est-il de darcs ? Est-il réellement utilisable sur autre chose que linux (on a du linux et du windows), s'intègre-t-il dans eclipse, vs.net, etc ?

      Pour ce qui est des GUI, passe ton chemin :-) C'est ligne de commande pure pour le moment, tant que personne ne s'y met pour écrire une interface ou ajouter le support dans quelque chose d'existant, genre RabbitVCS.

      Il y a des binaires Mac et Windows, garde un oeil sur http://wiki.darcs.net/Binaries dans les jours qui viennent, ils vont être ajoutés pour cette nouvelle version.

      > Et aussi, est-il assez performant ? (quand on parle de bazaar on comprend les problèmes de performance...)

      Généralement, darcs n'est pas recommandé pour des gros projets. Par exemple, il gère peu efficacement les fichiers binaires aussi bien du point de vue taille du dépot que consommation mémoire. De mon expérience, il est quand même bien plus rapide que bazaar.

      Pour un benchmark récent tu peux regarder:
      http://wiki.darcs.net/Benchmarks/Mornfall#and-for-a-big-repo(...)

      Les plus gros dépots darcs publics sont probablement celui du compilateur GHC avec >22000 patchs, de darcs même avec >8000 patchs et Tahoe-LAFS avec >4500 patchs.

      > Avez-vous des retours d'utilisation tout simplement ?

      En termes de fréquentation du chan IRC oui bien sûr. Ceux qui nous font pas mal de remarques sont les dévelopeurs GHC principalement. Ils ont envisagé de passer à Git pour cause de mauvaise performance de darcs il y a 2 ans et ne l'ont finalement pas fait car darcs s'est amélioré (cf http://hackage.haskell.org/trac/ghc/wiki/DarcsEvaluation ). Bon, maintenant j'ai ouï dire qu'ils veulent à nouveau passer à Git parce qu'ils veulent utiliser github, c'est encore un autre problème :-)

      Sinon, cf http://wiki.darcs.net/ProjectsUsingDarcs
    • [^] # Re: utilisation...

      Posté par  . Évalué à 1.

      > Est-ce qu'il y a du monde qui utilise darcs pour de vrai ?

      C'est assez difficile à savoir. Comme gros projet, il y a ghc —le compilateur haskell— et xmonad (de mémoire). On a beaucoup d'utilisateurs qui apprécient la simplicité de l'interface par rapport à git, et qui l'utilisent pour de petits projets. Darcs reste un peu au "second rang", mais on rattrape progressivement git et hg en matière de performances.

      > Pour le moment, Bazaar est évidemment rejeté,

      Pour quelles raisons? Le problème de performance avec darcs, c'est la gestion des dépôts avec de gros fichiers binaires. Pour le reste, c'est (au doigt mouillé) entre bazaar et hg/git.

      > les branches locales alagit manquerait

      Il n'y en a pas non plus avec darcs. D'un autre côté, avec le picorage natif, on a besoin de moins de branches locales en général.

      L'intégration dans eclipse… je ne connais pas bien, mais s'il y a des choses, ça doit être assez primitif. Il y a un mode emacs, c'est ce qui compte, non?
      • [^] # Re: utilisation...

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

        ok, donc a part du haskell pas grand monde utilise darcs. Comme dit dans la réponse au dessus, commande line... bon, ça le fera pas, domage.

        Pour bazaar, la dernière fois que j'ai testé il était vraiment toujours lent (il y a qq mois). J'ai un shell qui m'indique la branche dans laquelle je suis, que ce soit sous git, hg ou bzr. Sous git ça roule, sous hg aussi, par contre sous bzr il me faut 1 seconde pour que mon prompt apparaisse... vraiment trop lourd (et c'est qu'un exemple).
        donc après si darcs est entre bazaar et hg, ben ça donne moyen envie (après faudrait tester pour de vrai)

        > Il y a un mode emacs, c'est ce qui compte, non?
        enfin là je parlais de vrai monde avec de vrai gens qui ne tourne pas forcément sous linux et encore moins sous emacs (j'ai rien contre emacs c'est mon outil principal pour coder, taff compris)
    • [^] # Re: utilisation...

      Posté par  . Évalué à 4.

      git pourtant très intéressant et entrain de disparaître des choix (portabilité essentiellement...),
      Pourquoi ?
      Il y a de plus en plus de gui sous windows : https://git.wiki.kernel.org/index.php/InterfacesFrontendsAnd(...)
      • [^] # Re: utilisation...

        Posté par  . Évalué à 3.

        ah oui, non, on veut pas 50 gui inutiles.

        On en veut un qui fonctionne. Comme TortoiseGIT par exemple, il n'est pas mal du out, pas encore parfait, mais c'est déjà bien (j'ai meme l'impression que sous linux on n'a pas aussi efficace).

Suivre le flux des commentaires

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