Launch HN: Diversion (YC S22)、クラウドネイティブなGit代替
(news.ycombinator.com)- Diversionは、クラウド時代の大規模リポジトリとコラボレーションを対象にしたバージョン管理システムで、初期ユーザーはシンプルさと拡張性を求めるゲーム開発者たち
- Gitは2005年の低速ネットワーク・小規模プロジェクト・クラウド不在の環境で作られたため、今日のリポジトリ規模・ファイルサイズ・同時利用者数では限界があると見ている
- GoogleやMetaの独自バージョン管理システム、一部のゲーム開発・半導体・金融サービス企業によるSVN・Perforce利用は、Gitがすべての組織に適しているわけではない根拠として挙げられている
- Diversionは分散ストレージ、データベース、REST API、サーバーレスのクラウドインフラ上で、commit・branch・mergeのようなリポジトリ操作をAPI呼び出しで処理する
- 現在はオープンベータとして提供されており、小規模チームは無料で始められ、速度改善・CI統合・IDEおよびゲームエンジンプラグイン・ユーザビリティ改善が進行中
Diversionが狙うGitの限界
- Diversionは diversion.dev で提供されるクラウドネイティブなバージョン管理システム
- 短いデモは YouTube動画 で見られる
- 初期ユーザーはゲーム開発者で、シンプルさと拡張性を利点として評価している
- Gitは過去18年間にわたりソフトウェア開発の発展に大きく貢献してきたが、2005年の環境に合わせて作られたため、すべてのユーザーにとって完璧なツールではない
- 最大の欠点は、リポジトリサイズ、ファイルサイズ、同時ユーザー数に表れる限定的な拡張性
- GoogleとMetaはこのために独自のバージョン管理システムを作った
- ゲーム開発、半導体、金融サービス分野の一部大企業はSVNやPerforceのようなレガシーツールを使い続けている
- Gitの複雑さも、実際の作業損失につながりうる
- 以前のスタートアップでは、データサイエンティストが誤ったGitコマンドを使ってチームの1か月分の作業を失った事例があった
- 数時間後、更新されていないリポジトリのクローンから復旧できた
- ただしGitのブランチとマージ機能は、feature branchやCI/CDのような現代的な開発手法や、開発者の速度向上に大きく貢献してきた
クラウドベースの動作方式
- DiversionはGitのブランチ機能を維持しつつ、より簡単で高速かつ拡張可能なバージョン管理システムを目指している
- 現代のクラウドツールにおけるリアルタイムコラボレーションの概念をバージョン管理に適用している
- Google DocsやFigmaのように、作業中の状態を共有できる
- 開発者は常に作業中の内容を公開したいとは限らないが、コミット前にフィードバックを受けたり、マージ競合を検知・防止したり、他の人がコードベースのどの部分を変更しているか確認したりするのに役立つ
- 内部構造は分散ストレージとデータベース、REST API、サーバーレスのクラウドインフラに基づいている
- commit、branch、mergeなど、あらゆるリポジトリ操作はAPI呼び出しとして処理される
- デスクトップクライアントは、コミット前の作業中状態までクラウドにリアルタイム同期する
- ユーザーは対話型CLI、Web UI、IDEプラグインからアクセスできる
- 現在のIDEプラグインはJetBrainsをサポートしており、今後さらに追加される予定
- Web UIでは、デスクトップクライアントをインストールしなくても大半の基本操作を実行できる
- Gitと互換性があり、既存のGitリポジトリと同期できる
- Diversionの新しいコミットはGitに入り、Gitの新しいコミットもDiversionに入る
1件のコメント
Hacker Newsの意見