• [^] # Re: Soit j'ai rien compris soit...

    Posté par . En réponse à la dépêche Pijul, contrôle de version et théorie des patchs, version 0.12. Évalué à 6. Dernière modification le 04 mai 2019 à 11:56.

    Ensuite, j'affirme en effet ne pas avoir de problème avec Git et j'explique (en gros) pourquoi.

    Je suis intrigué par cette remarque, alors je pose un cas pratique n'étant pas un fin connaisseur de git. Prenons un historique de cette forme :

     /-- a1 -> A1 -- a2 -> A2 -- a3 -> A3 -\
     / \
    O ---- b1 -> B1 -- b2 -> B2 -- b3 -> B3 --> AB --> ABC -- ?? -> BC
     \ /
     \-- c1 -> C1 -> c2 -> C2 -------------------/
    

    Les lettres majuscules désignent des instantanés du dépôt et les lettres minuscules des patchs. On a trois branches A, B et C avec leurs patchs et commits successifs. On fusionne A et B, puis ensuite on fusionne C. La dernière fusion génère un conflit qui est résolu. On suppose que les changements de la branche A sont totalement indépendants de ceux des autres branches, le conflit venant seulement de la fusion des modifications de B et C. Question : comment, à partir de ABC, annuler les changements apportés par la branche A ? (hint : avec pijul, une seule commande devrait résoudre le problème).

    Si il faut plus d'une commande, fouiller dans les bonnes pratiques, chercher sur le net pour résoudre une question aussi triviale, alors git (ou autre VCS) a un problème. Il s'agit ici uniquement d'appliquer sur l'état ABC le patch inverse du composé de a1; a2; a3.

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.