1 points par GN⁺ 2024-01-23 | 1 commentaires | Partager sur WhatsApp
  • Diversion est un système de gestion de versions conçu pour les grands dépôts et la collaboration à l’ère du cloud ; ses premiers utilisateurs sont des développeurs de jeux qui recherchent simplicité et scalabilité
  • Git a été créé en 2005, dans un contexte de réseaux lents, de petits projets et d’absence de cloud ; Diversion estime qu’il atteint aujourd’hui ses limites face à la taille des dépôts et des fichiers, ainsi qu’au nombre d’utilisateurs simultanés
  • Les systèmes de gestion de versions internes de Google et Meta, ainsi que l’usage de SVN et Perforce par certaines entreprises du jeu vidéo, des semi-conducteurs et des services financiers, sont cités comme preuve que Git ne convient pas à toutes les organisations
  • Diversion repose sur du stockage distribué, des bases de données, une API REST et une infrastructure cloud serverless, et traite les opérations de dépôt comme commit, branch et merge via des appels API
  • Actuellement disponible en bêta ouverte, il permet aux petites équipes de démarrer gratuitement ; des améliorations de vitesse, des intégrations CI, des plugins pour IDE et moteurs de jeu, ainsi que des améliorations d’ergonomie sont en cours

Les limites de Git que vise Diversion

  • Diversion est un système de gestion de versions cloud native proposé sur diversion.dev
    • Une démonstration rapide est disponible en vidéo YouTube
    • Ses premiers utilisateurs sont des développeurs de jeux, qui y voient des atouts en matière de simplicité et de scalabilité
  • Git a joué un rôle majeur dans l’évolution du développement logiciel ces 18 dernières années, mais il a été conçu pour l’environnement de 2005 et n’est pas un outil parfait pour tous les utilisateurs
  • Son principal défaut apparaît dans sa scalabilité limitée en matière de taille des dépôts, de taille des fichiers et de nombre d’utilisateurs simultanés
    • Google et Meta ont créé leurs propres systèmes de gestion de versions pour cette raison
    • Certaines grandes entreprises dans le jeu vidéo, les semi-conducteurs et les services financiers continuent d’utiliser des outils legacy comme SVN et Perforce
  • La complexité de Git peut aussi entraîner de véritables pertes de travail
    • Dans une précédente startup, un data scientist avait utilisé une mauvaise commande Git, faisant perdre un mois de travail à l’équipe
    • Quelques heures plus tard, le travail a pu être récupéré depuis un clone du dépôt qui n’avait pas été mis à jour
  • Cela dit, les fonctions de branch et de merge de Git ont fortement contribué aux pratiques modernes de développement comme les feature branches et le CI/CD, ainsi qu’à l’amélioration de la vitesse des développeurs

Fonctionnement basé sur le cloud

  • Diversion vise à conserver la fonctionnalité de branches de Git tout en proposant un système de gestion de versions plus simple, plus rapide et plus scalable
  • Il applique à la gestion de versions le concept de collaboration en temps réel des outils cloud modernes
    • Comme Google Docs et Figma, il permet de partager l’état du travail en cours
    • Les développeurs ne veulent pas toujours rendre public ce sur quoi ils travaillent, mais cela peut être utile pour recevoir des retours avant un commit, détecter et éviter les conflits de merge, ou voir quelles parties de la codebase d’autres personnes modifient
  • Son architecture interne repose sur du stockage distribué, des bases de données, une API REST et une infrastructure cloud serverless
    • Toutes les opérations de dépôt, comme commit, branch et merge, sont traitées via des appels API
    • Le client desktop synchronise en temps réel avec le cloud même l’état du travail en cours avant commit
    • Les utilisateurs peuvent y accéder via une CLI interactive, une Web UI et des plugins IDE
    • Le plugin IDE prend actuellement en charge JetBrains, et d’autres seront ajoutés
    • La Web UI permet d’effectuer la plupart des opérations de base sans installer le client desktop
  • Il est compatible avec Git et peut se synchroniser avec des dépôts Git existants
    • Les nouveaux commits de Diversion vont dans Git, et les nouveaux commits de Git vont aussi dans Diversion

Plan d’ouverture et conditions d’utilisation de la bêta

  • Le projet prévoit d’être publié en open source lorsque la codebase sera mature et qu’un répertoire de dépôts open source aura été implémenté sur le site web
    • Le code de Diversion est également géré dans Diversion
  • Il est actuellement disponible en bêta ouverte, et il est possible de démarrer en self-service en cliquant sur Get Started
    • Il peut être utilisé sans avoir besoin de parler à quelqu’un
    • Il est gratuit pour les petites équipes, et les informations tarifaires sont disponibles sur la page pricing
  • Les améliorations en cours portent sur la vitesse, l’intégration CI, les plugins pour IDE et moteurs de jeu, ainsi que d’autres améliorations d’ergonomie

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.