Closed fgallaire closed 6 years ago
Agreed! Bonus question: is there a good multi-vcs Pythonic library? Else probably something which should be abstracted inside Archéo Lex or even better as a standalone library.
J'avais switché en anglais sans m'en rendre compte..retour au français !
Pas de librairie multi-vcs pour trois raisons je pense :
Je serai tenter de rejeter cette demande. Si quelqu'un a vraiment besoin de Mercurial ou Bazaar, il devrait pouvoir convertir le dépôt sans trop de difficulté. Autant ne pas compliquer les choses?
Git et Mercurial sont équivalents, mais pas Bazaar ni Darcs, on perdrait des informations en convertissant de Git. Ce sont des backends, quelques lignes dans un fichier indépendant du reste, ça ne complique pas grand chose.
Il y a-t-il un reel besoin de supporter d'autres VCS que Git ? Exemple ? Je ne suis pas contre, mais les "it would be good" tuent des projets tous les jours.
BTW https://github.com/DanielDent/git-annex-remote-rclone peut surement en interesser quelques uns.
Ce n'est certainement pas un ajout éventuel non bloquant qui va tuer ce projet... Par ailleurs supporter plusieurs VCS permet de survivre au déclin/disparition de l'un d'eux (même si ça semble peu probable pour Git, ça reste plus probable que la disparition des dinosaures), et de garantir globalement un meilleur code, i.e. découplé de la backend.
Et #47 est une raison qui se suffit à elle-même.
Dans la restructuration en cours du code, j’abstrais (entre autres) l’écriture du/des fichiers résultat.
La restructuration en cours sont les fichiers FabriqueArticle.py, FabriqueSection.py et le dossier exports où j’ai fait une "interface" Stockage
(j’ai l’impression que ça n’est pas l’habitude dans le monde Python, mais ça m’aide à structurer et documenter le code). Cette structure a besoin d’une autre interface Organisations
qui a elle-même besoin d’une interface Syntaxes
. Cf #24 pour plus de détails sur ces interfaces annexes.
Actuellement, il n’y a qu’un seul stockage, à savoir le stockage en dépôt Git et plus particulièrement en écrivant un vrai fichier puis en prenant en compte ce fichier Git (classe StockageGitFichiers
). Dès que la nouvelle structuration fonctionnera, je m’attaquerai à #51 qui sera une variante de stockage dans Git, plus efficace et légèrement différente en ce sens qu’elle ne créera que des dépôts Git --bare.
Quand la restructuration sera active par défaut, je fermerai cette issue comme résolue puisqu’il sera possible d’avoir plusieurs backends VCS ; si quelqu’un a besoin d’un VCS spécifique (Mercurial, Bazaar, Pijul, etc), il faudra ouvrir une issue spécifique.
La restructuration et abstraction de cette partie étant active depuis une semaine, cette issue est résolue. Comme dit dans le commentaire précédent, si vous voulez un backend spécifique, ouvrez une issue spécifique.
Personnellement, je ne suis pas intéressé par d’autres backends que Git et Pijul (à moyen terme), si vous proposez un backend autre que ces deux-là, venez avec une Pull Request, je ne ferai pas l’implémentation moi-même.
Git is not the only one VCS. Mercurial and Bazaar are great too. It could be good to have a multi-backends architecture + Git support, so anyone could add other VCS (mercurial and bazaar are Python libs, so this could be done quite easily).