Oublions pour un moment les problèmes d'UI (Git n'a pas besoin de serveur, SVN oui, et c'était casse-pieds. Git est vraiment mieux là-dessus, et d'ailleurs des non-techniciens peuvent l'utiliser même sans comprendre grand chose).
D'un point de vue théorique, Git et SVN sont tous les deux assez synchrones, dans le sens où ils forcent un ordre entre les opérations. On peut faire plus synchrone : Google Docs, par exemple, ou d'autres CRDTs. Git peut sembler un peu plus asynchrone que SVN, parce qu'il n'ordonne pas des opérations qui touchent à des branches différentes. Mais comme dans ce cas les opérations touchent nécessairement à des morceaux différents du dépôt, on ne peut pas vraiment parler d'asynchronisme.
Pijul, par contre, est complètement asynchrone : les contraintes d'ordre entre deux opérations sont réduites au strict minimum (essentiellement, on ne peut pas renommer un fichier, ou écrire dedans, avant d'avoir créé ce fichier). Dans Pijul, en dehors de cette contrainte, l'ordre n'a pas d'importance, puisque tous les ordres possibles aboutiraient au même résultat (les entrailles de Pijul sont mathématiquement un peu subtiles pour garantir ça, mais ça marche).
Mais comme les auteurs de Pijul font quand même du logiciel (y compris Pijul lui-même), ils comprennent quand même la contrainte des historiques clairs. Et dans Pijul, chaque branche se rappelle de l'ordre dans lequel les patchs ont été appliqués. Mais ça n'a pas d'importance, et d'ailleurs on peut enlever un patch en plein milieu (si les dépendances sont respectées) sans affecter le reste.
[^] # Re: On peut troller ou faut attendre vendredi ?
Posté par pmeunier . En réponse au journal Pijul 0.11. Évalué à 2.
Oublions pour un moment les problèmes d'UI (Git n'a pas besoin de serveur, SVN oui, et c'était casse-pieds. Git est vraiment mieux là-dessus, et d'ailleurs des non-techniciens peuvent l'utiliser même sans comprendre grand chose).
D'un point de vue théorique, Git et SVN sont tous les deux assez synchrones, dans le sens où ils forcent un ordre entre les opérations. On peut faire plus synchrone : Google Docs, par exemple, ou d'autres CRDTs. Git peut sembler un peu plus asynchrone que SVN, parce qu'il n'ordonne pas des opérations qui touchent à des branches différentes. Mais comme dans ce cas les opérations touchent nécessairement à des morceaux différents du dépôt, on ne peut pas vraiment parler d'asynchronisme.
Pijul, par contre, est complètement asynchrone : les contraintes d'ordre entre deux opérations sont réduites au strict minimum (essentiellement, on ne peut pas renommer un fichier, ou écrire dedans, avant d'avoir créé ce fichier). Dans Pijul, en dehors de cette contrainte, l'ordre n'a pas d'importance, puisque tous les ordres possibles aboutiraient au même résultat (les entrailles de Pijul sont mathématiquement un peu subtiles pour garantir ça, mais ça marche).
Mais comme les auteurs de Pijul font quand même du logiciel (y compris Pijul lui-même), ils comprennent quand même la contrainte des historiques clairs. Et dans Pijul, chaque branche se rappelle de l'ordre dans lequel les patchs ont été appliqués. Mais ça n'a pas d'importance, et d'ailleurs on peut enlever un patch en plein milieu (si les dépendances sont respectées) sans affecter le reste.
Avant Pijul, il y avait Darcs et Camp. Plus d'infos sur la clarté de l'historique là : https://www.youtube.com/watch?v=iOGmwA5yBn0