Microsoft、巨大なGitリポジトリ扱う仮想ファイルシステム「GVFS」
2017年2月8日 08:55
あるAnonymous Coward 曰く、 Microsoftが2月3日、バージョン管理システム「Git」で巨大なリポジトリを扱うための仮想ファイルシステム「GVFS (Git Virtual File System)」を発表、GitHub上で公開した(アナウンス、GitHub、マイナビニュース、Slashdot、OSDN Magazine)。
GVFSでは、リポジトリが管理するファイルシステムを仮想化し、必要に応じてファイルをダウンロードしたり更新することで、リポジトリに対する操作時にファイルアクセスによって発生する待ち時間を軽減するというもの。Microsoft社内ではWindowsやOfficeといった非常に大規模なソフトウェアのソースコードが存在するが、これらはファイル数が多すぎてGitでの操作時に大変な時間が掛かっていたそうだ。これを解決するために開発され、その結果巨大なGitリポジトリにおいてクローンが12時間から5分、チェックアウトが3時間から30秒、ステータス表示が8分から4秒、といった驚異的な高速化が実現できたという。
GVFSは現在はまだ開発中の状態であるが、巨大リポジトリに悩まされる開発者の光明となるだろうか。
MicrosoftのScaling Git (and some back story)という記事によると、リポジトリの分割といった解決方法も試したそうだが、20年以上も開発が続けられていたコードを分割することは非常に難しくコストのかかるものだったそうだ。そのためこのような解決方法がとられたという。