• [^] # Re: Mercurial

    Posté par . En réponse au message Ya-t-il des barbus dans la salle ( à propos de GIT).. É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