1 पॉइंट द्वारा GN⁺ 2024-01-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Diversion cloud युग के बड़े repositories और सहयोग को ध्यान में रखकर बनाया गया version control system है; इसके शुरुआती उपयोगकर्ता वे game developers हैं जो simplicity और scalability चाहते हैं
  • Git 2005 के धीमे networks, छोटे projects और cloud की अनुपस्थिति वाले माहौल में बना था, इसलिए आज के repository व file sizes और concurrent users के पैमाने पर इसमें सीमाएँ मानी जाती हैं
  • Google और Meta के अपने version control systems, और कुछ game development, semiconductor व financial services कंपनियों द्वारा SVN और Perforce के उपयोग को इस बात के प्रमाण के रूप में देखा जाता है कि Git हर संगठन के लिए उपयुक्त नहीं है
  • Diversion distributed storage, databases, REST API और serverless cloud infrastructure पर commit, branch, merge जैसे repository operations को API calls के रूप में संभालता है
  • यह अभी open beta में उपलब्ध है; छोटी टीमें मुफ्त में शुरू कर सकती हैं, और speed improvements, CI integration, IDE व game engine plugins और usability improvements पर काम जारी है

Git की वे सीमाएँ जिन्हें Diversion लक्ष्य बना रहा है

  • Diversion diversion.dev पर उपलब्ध cloud-native version control system है
    • तेज़ demo YouTube video के रूप में उपलब्ध है
    • शुरुआती उपयोगकर्ता game developers हैं, जो simplicity और scalability को इसकी खूबियाँ मानते हैं
  • Git ने पिछले 18 वर्षों में software development की प्रगति में बड़ी भूमिका निभाई है, लेकिन यह 2005 के माहौल के हिसाब से बनाया गया था, इसलिए यह सभी users के लिए perfect tool नहीं है
  • इसकी सबसे बड़ी कमी repository size, file size और concurrent users की संख्या में दिखने वाली सीमित scalability है
    • इसी वजह से Google और Meta ने अपने version control systems बनाए
    • game development, semiconductor और financial services क्षेत्रों की कुछ बड़ी कंपनियाँ SVN और Perforce जैसे legacy tools का उपयोग जारी रखती हैं
  • Git की complexity असल काम के नुकसान तक भी ले जा सकती है
    • पिछले startup में एक data scientist ने गलत Git command इस्तेमाल किया, जिससे team का एक महीने का काम खो गया था
    • कुछ घंटों बाद, update नहीं हुए repository clone से उसे recover किया जा सका
  • हालांकि Git की branch और merge सुविधाओं ने feature branch और CI/CD जैसी आधुनिक development practices और developer velocity बढ़ाने में बड़ा योगदान दिया है

Cloud-based काम करने का तरीका

  • Diversion का लक्ष्य Git की branching सुविधा बनाए रखते हुए एक आसान, तेज़ और scalable version control system बनना है
  • यह modern cloud tools की real-time collaboration अवधारणा को version control पर लागू करता है
    • Google Docs और Figma की तरह, काम के दौरान की स्थिति share की जा सकती है
    • developers हमेशा अपना work-in-progress सार्वजनिक नहीं करना चाहते, लेकिन commit से पहले feedback पाने, merge conflicts detect व prevent करने, या यह देखने में कि कोई और codebase के किस हिस्से को बदल रहा है, यह उपयोगी हो सकता है
  • इसकी internal architecture distributed storage और databases, REST API और serverless cloud infrastructure पर आधारित है
    • commit, branch, merge आदि सभी repository operations API calls के रूप में process होते हैं
    • desktop client commit से पहले की work-in-progress state तक को cloud में real time sync करता है
    • users interactive CLI, Web UI और IDE plugins के जरिए access कर सकते हैं
    • वर्तमान IDE plugin JetBrains को support करता है, और आगे और plugins जोड़े जाएंगे
    • Web UI, desktop client install किए बिना भी अधिकांश basic operations कर सकता है
  • यह Git-compatible है और मौजूदा Git repositories के साथ sync कर सकता है
    • Diversion के नए commits Git में जाते हैं, और Git के नए commits भी Diversion में आते हैं

Public release योजना और beta उपयोग की शर्तें

  • codebase mature होने और website पर open source repository directory implement होने के बाद इसे open source के रूप में release करने की योजना है
    • Diversion का code भी Diversion में ही manage होता है
  • यह अभी open beta के रूप में उपयोग किया जा सकता है; Get Started दबाकर self-service तरीके से शुरू किया जा सकता है
    • इसे इस्तेमाल करने के लिए किसी से बात करने की जरूरत नहीं है
    • छोटी teams के लिए यह free है, और pricing जानकारी pricing पर है
  • जारी improvements में speed, CI integration, IDE व game engine plugins और अन्य usability improvements शामिल हैं

1 टिप्पणियां

 
GN⁺ 2024-01-23
Hacker News की राय
  • Cloud-Native Git Alternative

    • cloud-native एक implementation detail है, और अगर नई version control system (VCS) को service की बजाय package software के रूप में बेचने की योजना नहीं है, तो यह महत्वपूर्ण नहीं है।
    • यह स्पष्ट नहीं है कि cloud-native, Git users की रोज़मर्रा की समस्याओं को कैसे हल करता है।
  • The biggest drawback of Git is its limited scalability

    • यह जानने की जिज्ञासा है कि Git की scalability समस्याओं का सामना करने वाले users का अनुपात कितना है।
    • मैंने सैकड़ों से लेकर दसियों हज़ार engineers वाली कंपनियों में काम किया है, लेकिन व्यक्तिगत रूप से Git की scalability समस्या कभी नहीं देखी।
    • monorepo का उपयोग scalability समस्याएँ पैदा कर सकता है, लेकिन monorepo खुद भी विवादास्पद है।
  • 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.).

    • user के नज़रिए से internal protocol में ज़्यादा रुचि नहीं होती।
    • CLI या UI का उपयोग करते समय internal protocol महत्वपूर्ण नहीं होता।
    • abstract syntax tree (AST) आधारित VCS के बारे में जिज्ञासा है।
  • most notably in games development, semiconductors and financial services are still using legacy tools like SVN and Perforce

    • Git की जटिलता से अधिक इस बात पर फ़ोकस करना चाहिए कि बड़े binary assets को संभालने के लिए Git उपयुक्त नहीं है।
    • बड़े files को Git द्वारा अच्छी तरह न संभाल पाने पर Linus Torvalds का उद्धरण।
  • it was built for a very different world in 2005 (slow networks, much smaller projects, no cloud)

    • Git को 2005 की उस दुनिया के लिए डिज़ाइन किया गया था जहाँ network धीमे थे, projects बहुत छोटे थे, और cloud नहीं था।
    • Git distributed है, इसलिए इसे cloud environment में भी अच्छी तरह काम करना चाहिए।
    • किसी data scientist द्वारा गलत Git command से एक महीने का काम नष्ट कर देना configuration समस्या जैसा लगता है।
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command

    • Git की आलोचना करने से अधिक अपने product पर फ़ोकस करना चाहिए।
    • Git एक distributed VCS है, और बिना backup के इसे centralized तरीके से इस्तेमाल करने की कोशिश ही समस्या है।
  • git is bad we're better

    • एक game developer के रूप में, प्रस्तुत प्रस्ताव में विशेष रुचि नहीं है।
    • Git LFS के साथ modern workflow सुचारु रूप से काम करता है।
    • cloud-native को feature के रूप में पेश किया गया है, लेकिन on-premise और self-hosted private cloud support के बारे में विवरण नहीं हैं।
    • file locking feature के लिए artists की पसंद, और P4 streams व branches के उपयोग के कारण locking का उपयोग कठिन होना।
  • File locking across branches - coming soon!

    • file locking feature जल्द आने वाला है, लेकिन प्रस्ताव में अभी और सुधार की ज़रूरत है।
  • 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.

    • Git का data structure एक अद्भुत आविष्कार है, लेकिन हर command का REST API के ज़रिए किया जाना सहमत करने वाला नहीं है।
    • Git की असली ताकत यह है कि offline रहते हुए भी partial clone के साथ काम किया जा सकता है और online होने पर commits sync किए जा सकते हैं।
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command.

    • Git की usability में सुधार की आवश्यकता स्वीकार है, लेकिन जो समस्या हुई वह development operations की विफलता जैसी लगती है।
    • non-coders को source control के फ़ायदे समझाते हुए advanced features बनाए रखने वाली आसान learning curve की ज़रूरत है।
  • The world needs a git alternative.

    • Git के विकल्प की ज़रूरत है।
    • जब कई लोग हर दिन एक ही repository में commit करते हैं, तब Git की सीमाएँ सामने आती हैं।
    • अगर Git rebase को बेहतर तरीके से संभाल सके, तो software development teams की काम की गति 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.

    • यह धारणा है कि enterprises नाम में "Cloud" या "AI" होने वाली हर चीज़ खरीद लेंगे।
    • तकनीक से ज़्यादा problem solving पर फ़ोकस करना महत्वपूर्ण है।
    • अगर user experience अच्छा नहीं है, तो technical details का कोई अर्थ नहीं है।
    • ऐसे product के लिए sales strategy की ज़रूरत है जो development time घटाए, errors कम करे, और collaboration बेहतर बनाए।