• [^] # Re: git et mercurial

    Posté par . En réponse au journal Sondage pour utilisateurs de git. Évalué à 6.

    tsss, c'est pas beau le FUD ;)

    Pour la lenteur tu dois confondre avec darcs ou monotone.

    La grosse différence est dans le fait que mercurial conserve l'information de descendance au niveau des fichiers, alors que git ne le fait que au niveau du changelog.
    Il est donc au contraire plus facile de trouver un ancêtre commun pour 2 révisions d'un même fichiers (dans tous les cas l'ancêtre commun se trouve de façon linéaire).
    Egalement git ne stocke pas les informations de renommage ou de copie, mais il utilise une heuristique pour les detecter après coup, alors que mercurial les stocke.
    Finalement le format de hg a été conçu avec comme idée de minimiser le nombre de seek (mettre a jour la copie de travail à n'importe quel revision se fait en O(total des tailles de fichiers), un commit se fait en O(1) seeks), le stockage était dès le début efficace (il a fallu attendre les packs pour que git ne prenne pas une place énorme).

    Malgré le fait que hg soit écrit en python (avec le noyau en C), il n'a pas à rougir de git au niveau de la vitesse, certaines opérations sont plus longues avec git, d'autres avec hg.

    sinon je ne sais pas de quel conversion tu parles, mais le kernel a un repo hg: http://www.kernel.org/hg/linux-2.6/

    quelques liens:
    Mercurial: http://www.selenic.com/mercurial/wiki/
    l'excellent livre de Brian O'Sullivan: http://hgbook.red-bean.com/
    (c'est pas encore la version finale, le livre est sous licence libre)
    Site proposant un hébergement pour mercurial : http://sharesource.org/