Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Mercurial 1.0

Posté par Edouard Gomez (page perso, ). Modéré le 25 mars 2008.
Après plus de trois ans de développement, Matt Mackall, développeur principal de Mercurial, annonce sur la liste de développement du projet que la version 1.0 est enfin prête. Mercurial est un gestionnaire de source décentralisé écrit en Python dont les objectifs principaux sont :
  • Facile à maîtriser et utiliser ;
  • Léger ;
  • Bonne tenue en charge (« scalabilité ») ;
  • Facile à personnaliser.
Il est livré avec une excellente documentation qui permet bien sûr de découvrir l'ensemble des commandes du programme mais aussi de mieux appréhender la gestion de source décentralisée avec ses nombreux avantages. Ce gestionnaire fonctionne à la fois sous nos Unix préférés et sous Windows. Il intègre de plus un convertisseur de dépôt de source permettant de reprendre l'historique de ses anciens projets CVS, SVN, Git, Darcs, Monotone, et GNU Arch/Bazaar 1.x.

Laissez-vous tenter par cet excellent outil qui ne pêche que par le manque de publicité qu'il génère face à Bazaar ou Git.

> Lire la dépêche (36 commentaires, moyenne: 3,4).  

Vous avez demandé le commentaire #916400.

plugins ODT ?

Posté par ploum (page perso, ) le 25/03/2008 à 11:58. (lien). Évalué à 3.

Existe-t-il des gestionnaires de version qui supportent l'ODT ?

De manière générale, ce serait cool d'avoir des gestionnaires avec des plugins en fonction des type de fichier. Cela permettrait par exemple de gérer les diffs entre des images et ce genre de choses.

  • [^]Re: plugins ODT ?

    Posté par alenvers () le 25/03/2008 à 12:19. (lien). Évalué à 2.

    Pour l'odt, c'est du texte (xml) donc, il ne doit pas avoir de problèmes.

    Pour les images, il y a des formats de fichiers qui retiennent l'historique des changements...

    • [^]Re: plugins ODT ?

      Posté par Moonz () le 25/03/2008 à 13:20. (lien). Évalué à 5.

      Non, c'est du xml compressé en zip. Ce n'est pas la même chose.

      • [^]Re: plugins ODT ?

        Posté par Matthieu Moy (page perso, ) le 25/03/2008 à 14:02. (lien). Évalué à 2.

        Et c'est du XML "tout-sur-une-ligne", donc un diff bête et méchant dessus ne fait pas grand chose d'intéressant.

        • [^]Re: plugins ODT ?

          Posté par Auberon (page perso, ) le 25/03/2008 à 14:14. (lien). Évalué à 2.

          Il est possible d'enregistrer les fichiers ODT/XML avec des retour-chariots.
          Il suffit d'aller dans :
          menu Outils > Options > Chargement/Enregistrement > Général
          Décoche ensuite :
          Optimisation de la taille pour le format XML.

          • [^]Re: plugins ODT ?

            Posté par ribwund () le 25/03/2008 à 14:25. (lien). Évalué à 4.

            Ca change vraiment la taille leur truc ? Surtout si ils compressent le fichier apres...

            • [^]Re: plugins ODT ?

              Posté par Auberon (page perso, ) le 25/03/2008 à 14:45. (lien). Évalué à 2.

              Personnellement, je ne sauvegarde jamais avec l'optimisation et je n'ai constaté aucune augmentation significative de la taille des fichiers.
              Effectivement, la compression atténue grandement une augmentation déjà peu importante en elle-même.

          [^]Re: plugins ODT ?

          Posté par alenvers () le 25/03/2008 à 14:31. (lien). Évalué à 1.

          Probablement avec ça
          http://hgbook.red-bean.com/hgbookch10.html#x14-19700010

          Un
          gzip sur le fichier + un 's/></>\n</g' devrait faire l'affaire.

          Pour le faire proprement, il faudrait un diff qui fonctionne sur une arborescence (et pas sur les lignes). Mais bon, qui se propose de le faire car c'est un Gruiik-Gruiik ce genre de chose ? Un algo LCS (Longest Common Sequence) est vraiment simple par rapport à ça.

          La bonne question est cela vaut-il vraiment la peine de se crever à créer un utilitaire diff pour chaque type de fichier existant ? Traitons-les juste comme du binaire ou utilisons des formats adaptés.

          Pour ma part, c'est du LaTeX, donc, jamais eu ce type de problèmes.

          • [^]Re: plugins ODT ?

            Posté par Bozo le Clown () le 25/03/2008 à 14:57. (lien). Évalué à 4.


            La bonne question est cela vaut-il vraiment la peine de se crever à créer un utilitaire diff pour chaque type de fichier existant ? Traitons-les juste comme du binaire ou utilisons des formats adaptés.

            La réponse est ... oui.
            Chaque format de fichier dispose de sa propre sémantique et ce n'est pas parce que tu disposes de comparateur/merger de fichiers XML que tu es en mesures d'apprécier un même changement qui apparait en plusieurs endroits d'un même fichier.Il y a de réels risques de corruption de fichiers.

            Clearcase implémente ca depuis toujours en permetttant d'associer à chaque type de fichier de se voir associer un outil de comparaison/fusion adapté. Malgré tous ses défauts, la façon dont il aborde cette problématique reste un de ses principaux attraits par rapport à la concurrence.
            Ainsi tu peux comparer des fichiers Word graphiquement (en attendant ODT) mais aussi des fichiers Rose ou même des arborescence complètes.

            Des initiatives émergent pour proposer des comparateurs pour les types de formats qui soient indépendantes du gestionnaire de version (cf. EMF Compare par exemple http://www.eclipse.org/modeling/emft/?project=compare#compar(...) Il serait donc dommage que les VCS ou les outils clients le négligent.
            ODT ne devrait donc pas déroger à la règle et proposer lui-même cette fonctionnalité (plugin OpenOffice par exemple).

            • [^]Re: plugins ODT ?

              Posté par alenvers () le 25/03/2008 à 15:15. (lien). Évalué à 4.

              >Chaque format de fichier dispose de sa propre sémantique

              Ce que je veux dire c'est que justement cette sémantique n'est pas si évidente. Cela semble simple sur papier, mais comparer des fichiers n'est pas trivial voire complètement voué à l'échec.

              Quelques exemples :
              - Prenons 2 images dont la différence est juste un correction de luminosité : comment faire un diff (tous les points ont changés) ?
              - Prenons 2 fichiers xml dont la différence est
              <it>Italics</it> devient <it>Ita<bd>li</bd>cs</it>
              Le texte est le même mais la présentation pas que sort le diff ?
              - Prenons 2 fichiers xml
              <item>item1</item>
              <item>item2</item>
              et
              <item>item2</item>
              <item>item1</item>

              Sont-ils identiques ou pas si l'ordre n'a pas d'importance ?

              Et encore, j'ai choisi des cas extrêments simple. Dans des cas rééls, je n'ose même pas imaginer les problèmes possible.

              • [^]Re: plugins ODT ?

                Posté par Bozo le Clown () le 25/03/2008 à 15:42. (lien). Évalué à 3.

                Et ma réponse est donc.
                Qui connait le mieux la sémantique de son fichier que l'outil qui l'exploite ?

                L'outil doit fournir son propre comparateur/mergeur qui accepte en paramètre 2 (comparaison) ou 4 (merge 3 contributeurs) versions de fichiers selon que tu souhaites comparer ou merger.
                Dans ton cas, il présente graphiquement la différence, te propose de choisir la combinaison et il assure la cohérence du changement. Le cas du merge des fichiers texte à plat (sources) qui ne présument pas de la sémantique n'est qu'un cas particulier. Pourquoi vouloir le généraliser à tous types de fichiers.
                Ainsi même un fichier java a une sémantique différente d'un fichier python et si un outil VCS les traite de façon identique on peut très bien imaginer qu'il passe la main à un IDE qui connait mieux la structure de ce fichier et est capable d'apporter plus d'intégration tout en n'étant pas trop intrusif (par exemple l'ajout d'une accolade ouvrante dans un merge de .java s'accompagne forcément de l'ajout d'une accolade fermante pour marquer la mise en bloc). L'IDE en est capable. encore faut il que le VCS lui passe la main dans de bonnes conditions.

                Ainsi on reste indépendant de l'outil VCS pour peu qu'il respecte le protocole.
                A chacun ses responsabilités.

                C'est ce que j'attends d'ODF (mais peut-être qu'OpenOffice le propose déjà)

      [^]Re: plugins ODT ?

      Posté par Raphaël SurcouF (Jabber id, page perso, ) le 25/03/2008 à 14:27. (lien). Évalué à 7.

      Non seulement c'est du XML compressé en ZIP, mais si tu lis couramment le XML des documents OpenOffice.org, moi pas. Je ne me vois pas faire un diff entre deux versions d'un même document pour savoir ce que j'ai pu modifier.
      Ce qui manque dans tous les VCS, c'est un outil de diff pour les ODT, point.

    [^]Re: plugins ODT ?

    Posté par Clément David (Jabber id, page perso, ) le 25/03/2008 à 13:23. (lien). Évalué à 4.

    D'après ce qui est dit juste au dessus, il est apparemment possible d'utiliser des filtres avant et après le diff.

    Utilise alors un filtre ZIP/UNZIP pour le type ODT et le tour est joué.

    --
    C# (sans runtime) + GObject = Vala

    [^]Re: plugins ODT ?

    Posté par chicha () le 25/03/2008 à 13:33. (lien). Évalué à 5.

    Mercurial (Hg) supporte l'ODT, et donne ici une astuce pour afficher les diffs :

    http://www.selenic.com/mercurial/wiki/index.cgi/HandlingOpen(...)

    [^]Re: plugins ODT ?

    Posté par Matthieu Moy (page perso, ) le 25/03/2008 à 13:59. (lien). Évalué à 3.

    http://www-verimag.imag.fr/~moy/opendocument/

    (même texte que celui cité plus bas sur le Wiki de Mercurial)

    En fait, à partir du moment où on a un truc un peu flexible, et qu'on connait odt2txt, c'est assez facile de générer des diffs sur ces fichiers.

    Par contre, c'est un diff visuel, mais hors de question de l'appliquer avec patch. Plus généralement, je ne crois pas qu'il existe de bons outils de merge sur ce genre de fichiers.

    • [^]Re: plugins ODT ?

      Posté par -mat () le 25/03/2008 à 14:22. (lien). Évalué à 2.


      Plus généralement, je ne crois pas qu'il existe de bons outils de merge sur ce genre de fichiers.

      Il y a http://tdm.berlios.de/3dm/doc/index.html
      C'est un peu rugueux... Mais j'espère bien l'utiliser ou m'en inspirer à court ou moyen terme (comprendre, dans longtemps ou jamais.... vu l'état d'avancement de mes projets perso)