Un "excellent/magique" VCS permettrait de lever un conflit ou tout au moins de préciser explicitement cette intégration.
J'attends toujours l'exemple concret qui montrerait que Pijul s'en sortirait mieux.
Ok, je te suggère d'essayer Pijul sur ce cas, tu verras qu'il fait le bon truc. Je ne vais pas te donner les exemples avec des diffs (mais tu ne me les donne pas non plus pour Git).
Le modèle de Pijul ici est que tu as trois ensembles de patchs:
A: { a1, A1, a2, A2, a3, A3, a4, A4 }
B: { b1, B1, b2, B2, b3, B3 }
C: { c1, C1, c2, C2 }
Tu veux prendre des patchs dans A et les ajouter dans B:
pijul pull --from-branch A --to-branch B a1 A1 a2 A2 a3 A3
Tu veux prendre des patchs dans C et les ajouter dans B:
Je les ai ordonnés par ordre alphabétique, parce que dans Pijul deux patchs produits sur des branches différentes peuvent être appliqués dans n'importe quel ordre sans changer le résultat (même s'il y a des conflits).
Si tu veux virer un ou plusieurs patchs (par exemple on veut virer b3, B3 et C2), tu peux faire :
pijul unrecord b3 B3 C2
J'attends aussi qu'on me démontre que la gymnastique intellectuelle que l'on doit appliquer afin de comprendre les cas où l'outil ne se comporterait pas comme on serait en droit de l'attendre, vaudrait de s'y investir.
Ma réponse est que le modèle de Pijul avec des ensembles est ultra simple. Il y a des preuves mathématiques que ça se comporte toujours "comme on s'y attend", c'est-à-dire que tous les conflits sont détectés, qu'ils sont résolubles par un seul patch, que les patchs sont associatifs ("pull AB, puis pull C" fait la même chose que "pull A, puis pull BC"), et que les patchs produits indépendamment commutent toujours.
C'est nous qui avons fait la gymnastique intellectuelle pour écrire cet outil, pas besoin de la refaire quand on l'utilise.
[^] # Re: Soit j'ai rien compris soit...
Posté par pmeunier . En réponse à la dépêche Pijul, contrôle de version et théorie des patchs, version 0.12. Évalué à 6.
Ok, je te suggère d'essayer Pijul sur ce cas, tu verras qu'il fait le bon truc. Je ne vais pas te donner les exemples avec des diffs (mais tu ne me les donne pas non plus pour Git).
Le modèle de Pijul ici est que tu as trois ensembles de patchs:
Tu veux prendre des patchs dans A et les ajouter dans B:
pijul pull --from-branch A --to-branch B a1 A1 a2 A2 a3 A3Tu veux prendre des patchs dans C et les ajouter dans B:
pijul pull --from-branch C --to-branch B -aMaintenant tu as trois ensembles:
Je les ai ordonnés par ordre alphabétique, parce que dans Pijul deux patchs produits sur des branches différentes peuvent être appliqués dans n'importe quel ordre sans changer le résultat (même s'il y a des conflits).
Si tu veux virer un ou plusieurs patchs (par exemple on veut virer b3, B3 et C2), tu peux faire :
pijul unrecord b3 B3 C2Ma réponse est que le modèle de Pijul avec des ensembles est ultra simple. Il y a des preuves mathématiques que ça se comporte toujours "comme on s'y attend", c'est-à-dire que tous les conflits sont détectés, qu'ils sont résolubles par un seul patch, que les patchs sont associatifs ("pull AB, puis pull C" fait la même chose que "pull A, puis pull BC"), et que les patchs produits indépendamment commutent toujours.
C'est nous qui avons fait la gymnastique intellectuelle pour écrire cet outil, pas besoin de la refaire quand on l'utilise.