• [^] # Re: c'est une question de philosophie

    Posté par . En réponse au journal "Scaling Mercurial at Facebook". Évalué à 2.

    Le --amend réécrit le dernier commit en repartant du père.
    La référence de branche locale est déplacée sur le nouveau commit. Il y a toujours une unique feuille dans la branche.
    L'ancien commit est oublié et n'appartient plus à la branche. Il est dans le reflog.
    Les branches sont des pointeurs ... uniques.
    Cette histoire de commit oublié (par un co, reset ou amend est le plus difficile à intégrer pour les novices avec git. C'est ingénieux mais déconcertant.
    Pour travailler dans un même effort de développement: une branche ou plutôt un faisceau ou sous-graphe, il faut en fait travailler avec plusieurs références de branches (une locale et n de suivi). Leur association est purement formelle.
    Hg fonctionne différemment. Tous les commits d'une même branche portent le même nom (fichier versionné dans le commit qui enregistre ces références). On peut donc se retrouver avec plusieurs commit feuilles qui portent le même nom (heads) qu'ils faut réconcilier. Le résultat est le même mais le concept est plus simple à appréhender.