1 points par GN⁺ 2024-01-23 | 1 commentaires | Partager sur WhatsApp
  • Présentation de Diversion, un nouveau système de contrôle de version

    • Sasha et Egal développent Diversion, un système moderne de contrôle de version basé sur le cloud.
    • Leurs premiers utilisateurs sont des développeurs de jeux, qui apprécient la simplicité et la scalabilité de Diversion.
    • Une démo rapide est disponible ici : lien vers la démo
  • Les limites de Git et le besoin d’un nouveau VCS

    • Git a fortement fait progresser le développement logiciel, mais il a été conçu pour le contexte de 2005 (réseaux lents, petits projets, absence de cloud), et n’est donc pas un outil parfait pour tout le monde aujourd’hui.
    • Le principal défaut de Git est sa scalabilité limitée en ce qui concerne la taille des dépôts et des fichiers, ainsi que le nombre d’utilisateurs simultanés.
    • C’est pour cette raison que Google et Meta ont construit leurs propres systèmes de contrôle de version, et que de grandes entreprises dans le jeu vidéo, les semi-conducteurs ou les services financiers utilisent encore des outils legacy comme SVN et Perforce.
  • Résoudre la complexité de Git et intégrer des fonctionnalités modernes

    • L’objectif est de résoudre les problèmes causés par la complexité de Git.
    • Les excellentes capacités de branchement et de fusion de Git ont largement contribué aux méthodologies modernes de développement logiciel.
    • Ils se demandent s’il est possible de créer un système de contrôle de version facile à utiliser, rapide et scalable, et ce qu’il serait possible d’améliorer tout en conservant les fonctionnalités de branchement de Git.
  • Caractéristiques de Diversion et expérience utilisateur

    • Diversion est construit au-dessus d’un stockage distribué et d’une base de données, accessible via une API REST, et fonctionne sur une infrastructure cloud serverless.
    • Toutes les opérations sur le dépôt passent par des appels d’API (commit, branche, fusion, etc.).
    • Le client desktop synchronise en temps réel avec le cloud tout le travail en cours, même avant le commit.
    • Les utilisateurs peuvent utiliser Diversion via une CLI interactive, une interface web et des plugins IDE (JetBrains est disponible dès maintenant, d’autres arrivent bientôt).
    • L’interface web permet d’effectuer les opérations de base sans installer le client desktop.
  • Compatibilité avec Git et projet open source

    • Diversion est compatible avec Git et peut se synchroniser avec des dépôts Git existants (les nouveaux commits Diversion sont reflétés dans Git, et inversement).
    • Une sortie en open source est prévue lorsque la base de code sera plus mature et qu’un répertoire de dépôts open source aura été mis en place sur le site web (le code de Diversion est géré dans Diversion).
  • Bêta ouverte et possibilité d’utilisation gratuite

    • Diversion est en bêta ouverte, et peut être testé ici : site web de Diversion (cliquer sur Get Started).
    • Le service est entièrement en self-service et gratuit pour les petites équipes.
  • Fonctionnalités en cours de développement et demande de retours

    • Construire un système de contrôle de version est une tâche difficile, et Diversion a encore beaucoup de chemin à parcourir.
    • L’équipe se concentre actuellement sur l’amélioration des performances, l’intégration CI, le développement de plugins pour IDE et moteurs de jeu, ainsi que d’autres améliorations d’ergonomie.
    • Elle aimerait connaître les avis et retours sur les progrès réalisés jusqu’ici.

L’avis de GN⁺

  • Diversion est un système moderne de contrôle de version basé sur le cloud, dont l’intérêt principal est de chercher à résoudre les problèmes de scalabilité et de complexité de Git.
  • La collaboration en temps réel, le traitement des opérations via API et la compatibilité avec Git sont des fonctionnalités susceptibles de séduire les développeurs.
  • La bêta ouverte et l’offre gratuite donnent à de nombreux développeurs une bonne occasion d’essayer un nouvel outil, ce qui pourrait favoriser la croissance rapide et l’amélioration de Diversion.

1 commentaires

 
GN⁺ 2024-01-23
Commentaires sur Hacker News
  • Cloud-Native Git Alternative

    • Le cloud-native est un détail d’implémentation, et ce n’est pas important à moins de prévoir de vendre un nouveau système de gestion de versions (VCS) comme logiciel packagé plutôt que comme service.
    • On ne voit pas clairement comment le cloud-native résout les problèmes quotidiens des utilisateurs de Git.
  • The biggest drawback of Git is its limited scalability

    • Je me demande quelle proportion d’utilisateurs rencontre réellement des problèmes de scalabilité avec Git.
    • J’ai travaillé dans des entreprises comptant de quelques centaines à plusieurs dizaines de milliers d’ingénieurs, mais je n’ai personnellement jamais rencontré de problème de scalabilité avec Git.
    • L’usage d’un monorepo peut provoquer des problèmes de scalabilité, mais le monorepo lui-même reste sujet à débat.
  • Diversion is built on top of distributed storage and databases, accessible via REST API, and runs on serverless cloud infrastructure. Every repository operation is an API call (commit, branch, merge etc.).

    • Du point de vue de l’utilisateur, il y a peu d’intérêt pour le protocole interne.
    • Quand on utilise une CLI ou une UI, le protocole interne n’a pas d’importance.
    • Curiosité pour un VCS basé sur un arbre syntaxique abstrait (AST).
  • most notably in games development, semiconductors and financial services are still using legacy tools like SVN and Perforce

    • Il vaudrait mieux insister non pas sur la complexité de Git, mais sur le fait qu’il n’est pas adapté au traitement de gros assets binaires.
    • Citation de Linus Torvalds sur le fait que Git gère mal les gros fichiers.
  • it was built for a very different world in 2005 (slow networks, much smaller projects, no cloud)

    • Git a été conçu dans un environnement différent de celui d’aujourd’hui : réseaux lents, petits projets et absence de cloud en 2005.
    • Comme Git est distribué, il devrait aussi bien fonctionner dans un environnement cloud.
    • Le fait qu’un data scientist ait détruit un mois de travail avec une mauvaise commande Git semble relever d’un problème de configuration.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command

    • Mieux vaudrait se concentrer sur leur propre produit que sur les critiques adressées à Git.
    • Git est un VCS distribué, et le vrai problème est la tentative de l’utiliser de manière centralisée sans sauvegarde.
  • git is bad we're better

    • En tant que développeur de jeux, peu d’intérêt pour la proposition présentée.
    • Un workflow moderne avec Git LFS fonctionne sans accroc.
    • Le cloud-native est présenté comme une fonctionnalité, mais il manque des détails sur la prise en charge on-premise et des clouds privés auto-hébergés.
    • Préférence des artistes pour le verrouillage de fichiers, et difficulté d’utiliser ce verrouillage avec les streams et branches de P4.
  • File locking across branches - coming soon!

    • La fonctionnalité de verrouillage de fichiers arrive bientôt, mais la proposition a encore besoin d’améliorations.
  • Git cli UX made be not great, but the git datastructure of representing commits, branches, trees and blobs as immutable pointers and merkle trees is a phenomenal invention.

    • La structure de données de Git est une invention remarquable, mais il n’y a pas d’adhésion à l’idée que toutes les commandes passent par une REST API.
    • La grande force de Git est de permettre de travailler hors ligne avec des clones partiels, puis de synchroniser les commits une fois reconnecté.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command.

    • La nécessité d’améliorer l’ergonomie de Git est reconnue, mais le problème survenu ressemble à un échec des pratiques DevOps.
    • Il faut une courbe d’apprentissage plus accessible qui permette de présenter les avantages du contrôle de source aux non-codeurs tout en conservant les fonctionnalités avancées.
  • The world needs a git alternative.

    • Le monde a besoin d’une alternative à Git.
    • Les limites de Git apparaissent quand plusieurs personnes commitent chaque jour dans le même dépôt.
    • Si Git gérait mieux le rebase, la vitesse de travail des équipes de développement logiciel pourrait augmenter de 20 %.
  • I get that enterprises will buy anything with "Cloud" or "AI" in the name, but VCS doesn't have anything to do with the cloud.

    • L’idée que les entreprises achèteront tout ce qui contient « Cloud » ou « IA » dans le nom.
    • Il est important de se concentrer sur la résolution de problèmes plutôt que sur la technologie.
    • Si l’expérience utilisateur n’est pas bonne, les détails techniques n’ont aucun sens.
    • Il faut une stratégie de vente pour un produit offrant une expérience qui réduit le temps de développement, diminue les erreurs et améliore la collaboration.