1 poin oleh GN⁺ 2024-01-23 | 1 komentar | Bagikan ke WhatsApp
  • Diversion adalah sistem kontrol versi yang ditujukan untuk repositori skala besar dan kolaborasi di era cloud, dengan pengguna awal berupa para pengembang game yang menginginkan kesederhanaan dan skalabilitas
  • Git dibuat untuk lingkungan tahun 2005 dengan jaringan lambat, proyek kecil, dan tanpa cloud, sehingga dinilai memiliki keterbatasan pada ukuran repositori, ukuran file, dan skala pengguna bersamaan saat ini
  • Sistem kontrol versi internal milik Google dan Meta, serta penggunaan SVN dan Perforce oleh sebagian perusahaan di bidang pengembangan game, semikonduktor, dan layanan keuangan, digunakan sebagai bukti bahwa Git tidak cocok untuk semua organisasi
  • Diversion menangani operasi repositori seperti commit, branch, dan merge sebagai panggilan API di atas storage terdistribusi, database, REST API, dan infrastruktur cloud serverless
  • Saat ini tersedia dalam beta terbuka, tim kecil bisa memulai secara gratis, dan peningkatan pada kecepatan, integrasi CI, plugin IDE dan game engine, serta kegunaan sedang berlangsung

Keterbatasan Git yang menjadi sasaran Diversion

  • Diversion adalah sistem kontrol versi cloud-native yang tersedia di diversion.dev
    • Demo singkat tersedia dalam video YouTube
    • Pengguna awalnya adalah pengembang game, yang menilai kesederhanaan dan skalabilitas sebagai keunggulan
  • Git telah memainkan peran besar dalam perkembangan pengembangan software selama 18 tahun terakhir, tetapi karena dibuat untuk lingkungan tahun 2005, Git bukan alat yang sempurna untuk semua pengguna
  • Kekurangan terbesarnya adalah skalabilitas yang terbatas, yang terlihat pada ukuran repositori, ukuran file, dan jumlah pengguna bersamaan
    • Karena alasan ini, Google dan Meta membuat sistem kontrol versi mereka sendiri
    • Sejumlah perusahaan besar di bidang pengembangan game, semikonduktor, dan layanan keuangan masih terus menggunakan alat legacy seperti SVN dan Perforce
  • Kompleksitas Git juga bisa berujung pada hilangnya pekerjaan nyata
    • Di startup sebelumnya, pernah ada kasus seorang data scientist menggunakan perintah Git yang salah dan menyebabkan tim kehilangan pekerjaan selama sebulan
    • Beberapa jam kemudian, pekerjaan itu bisa dipulihkan dari clone repositori yang belum diperbarui
  • Meski begitu, fitur branch dan merge di Git sangat berkontribusi pada cara pengembangan modern seperti feature branch dan CI/CD, serta peningkatan kecepatan kerja developer

Cara kerja berbasis cloud

  • Diversion bertujuan menjadi sistem kontrol versi yang mempertahankan fitur branch Git, tetapi lebih mudah, lebih cepat, dan lebih skalabel
  • Diversion menerapkan konsep kolaborasi real-time dari alat cloud modern ke dalam kontrol versi
    • Seperti Google Docs dan Figma, status pekerjaan yang sedang berlangsung bisa dibagikan
    • Developer mungkin tidak selalu ingin membuka pekerjaan yang sedang dikerjakan, tetapi ini bisa berguna untuk menerima feedback sebelum commit, mendeteksi dan mencegah merge conflict, atau melihat bagian mana dari codebase yang sedang diubah orang lain
  • Struktur internalnya berbasis storage terdistribusi dan database, REST API, serta infrastruktur cloud serverless
    • Semua operasi repositori seperti API call untuk commit, branch, dan merge diproses melalui API
    • Klien desktop menyinkronkan secara real-time ke cloud, termasuk status pekerjaan yang masih berlangsung sebelum commit
    • Pengguna dapat mengaksesnya melalui CLI interaktif, Web UI, dan plugin IDE
    • Saat ini plugin IDE mendukung JetBrains, dan dukungan tambahan akan menyusul
    • Web UI memungkinkan sebagian besar pekerjaan dasar dilakukan tanpa memasang klien desktop
  • Kompatibel dengan Git dan dapat disinkronkan dengan repositori Git yang sudah ada
    • Commit baru di Diversion masuk ke Git, dan commit baru di Git juga masuk ke Diversion

Rencana publikasi dan syarat penggunaan beta

  • Ada rencana untuk merilisnya sebagai open source ketika codebase sudah matang dan direktori repositori open source di situs web sudah diimplementasikan
    • Kode Diversion sendiri juga dikelola di Diversion
  • Saat ini dapat digunakan dalam beta terbuka, dan bisa dimulai secara self-service dengan menekan Get Started
    • Dapat digunakan tanpa perlu berbicara dengan siapa pun
    • Gratis untuk tim kecil, dan informasi harga tersedia di pricing
  • Peningkatan yang sedang dikerjakan mencakup kecepatan, integrasi CI, plugin IDE dan game engine, serta peningkatan kegunaan lainnya

1 komentar

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

    • Cloud-native adalah detail implementasi, dan tidak penting kecuali mereka berencana menjual sistem kontrol versi (VCS) baru sebagai perangkat lunak paket, bukan sebagai layanan.
    • Tidak jelas bagaimana cloud-native menyelesaikan masalah sehari-hari para pengguna Git.
  • The biggest drawback of Git is its limited scalability

    • Muncul pertanyaan tentang persentase pengguna yang benar-benar mengalami masalah skalabilitas Git.
    • Pernah bekerja di perusahaan dengan ratusan hingga puluhan ribu engineer, tetapi secara pribadi tidak pernah mengalami masalah skalabilitas Git.
    • Penggunaan monorepo dapat menimbulkan masalah skalabilitas, tetapi monorepo sendiri juga kontroversial.
  • 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.).

    • Dari sudut pandang pengguna, ada sedikit minat pada protokol internal.
    • Saat menggunakan CLI atau UI, protokol internal tidak penting.
    • Ada rasa ingin tahu terhadap VCS berbasis abstract syntax tree (AST).
  • most notably in games development, semiconductors and financial services are still using legacy tools like SVN and Perforce

    • Sebaiknya fokus bukan pada kompleksitas Git, melainkan pada fakta bahwa Git tidak cocok untuk menangani aset biner berukuran besar.
    • Kutipan Linus Torvalds bahwa Git tidak menangani file besar dengan baik.
  • it was built for a very different world in 2005 (slow networks, much smaller projects, no cloud)

    • Git dirancang pada 2005 dalam lingkungan yang berbeda, dengan jaringan lambat, proyek kecil, dan tanpa cloud.
    • Karena Git bersifat terdistribusi, seharusnya ia juga bekerja dengan baik di lingkungan cloud.
    • Kasus data scientist yang menghancurkan hasil kerja sebulan dengan perintah Git yang salah tampak seperti masalah konfigurasi.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command

    • Sebaiknya fokus pada produk mereka sendiri, bukan hanya mengkritik Git.
    • Git adalah VCS terdistribusi, dan masalahnya adalah upaya menggunakannya secara tersentral tanpa backup.
  • git is bad we're better

    • Sebagai game developer, tidak terlalu tertarik dengan proposal yang diajukan.
    • Workflow modern dengan Git LFS berjalan lancar.
    • Cloud-native ditonjolkan sebagai fitur, tetapi tidak ada detail tentang dukungan on-premise dan private cloud yang di-host sendiri.
    • Preferensi artist terhadap fitur file locking serta sulitnya menggunakan locking karena P4 streams dan branch.
  • File locking across branches - coming soon!

    • Fitur file locking akan segera hadir, tetapi proposalnya masih perlu diperbaiki.
  • 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.

    • Struktur data Git adalah penemuan yang luar biasa, tetapi tidak setuju bahwa semua perintah harus dilakukan melalui REST API.
    • Kekuatan Git adalah bisa bekerja secara offline dengan partial clone, lalu menyinkronkan commit saat kembali online.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command.

    • Diakui bahwa usability Git perlu ditingkatkan, tetapi masalah yang terjadi tampak sebagai kegagalan DevOps.
    • Diperlukan kurva pembelajaran yang lebih mudah agar non-coder bisa merasakan manfaat source control sambil tetap mempertahankan fitur-fitur lanjutan.
  • The world needs a git alternative.

    • Dunia membutuhkan alternatif Git.
    • Ada keterbatasan Git ketika banyak orang melakukan commit ke repository yang sama setiap hari.
    • Jika Git bisa menangani rebase dengan lebih baik, kecepatan kerja tim pengembangan perangkat lunak diperkirakan meningkat 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.

    • Ada anggapan bahwa perusahaan akan membeli apa pun yang memiliki kata "Cloud" atau "AI" dalam namanya.
    • Penting untuk fokus pada penyelesaian masalah, bukan pada teknologinya.
    • Jika pengalaman pengguna buruk, detail teknis tidak ada artinya.
    • Diperlukan strategi penjualan untuk produk yang menawarkan pengalaman yang mempersingkat waktu pengembangan, mengurangi kesalahan, dan meningkatkan kolaborasi.