米Microsoft、Gitリポジトリのファイルシステムを仮想化する「Git Virtual File System」を公開

 米Microsoftは2月3日、Gitリポジトリのファイルシステムを仮想化する「Git Virtual File System(GVFS)」を公開した。リポジトリのファイルシステムを仮想化することで、チェックアウトなどの操作を軽快に行うことができるという。

 Git Virtual File System(GVFS)はリポジトリのファイルシステムを仮想化し、必要に応じてオブジェクトをダウンロードすることで、リポジトリ内の全コンテンツをダウンロードすることなしにGitを利用できるというもの。すべてのファイルはローカルにあるように操作でき、大容量のリポジトリでもclone、checkout、statusなどの操作を数秒から数十秒で行えると報告している。

 Microsoftによると、社内でGitを利用する開発者は多いが、コード行の多いリポジトリを持つチームがいくつかあり、Gitクライアントの使い勝手に問題があったことから開発を行うことにしたという。例えば、Windowsのコードベースは270GB、350万行あるとのこと。こういった大容量のリポジトリでは、チェックアウトに最大3時間かかったり、git statusでリポジトリのステータスを確認する操作に10分かかることもあるという。

 また、Microsoft内のあるリポジトリは、そのリポジトリ内のソースコード全体をビルドするような開発者はおらず、開発者は修正したい部分に関連するコンポーネントのみをビルドするような運用になっているという。リポジトリ内には300万以上のファイルが格納されているが、開発者が必要なのはそのうちの5万~10万個だけなのに、Gitでは利用時にリポジトリ内の全データを対象に操作を行おうとするため、操作に長い時間がかかってしまうという。

 GVFSはリポジトリのファイルシステム仮想化に加えて、checkoutやstatusなどの操作を考慮してリポジトリの容量を管理できる機能もあり、これらの操作を軽快に行うことができるという。操作は全てファイルレベルで行われるため、IDEやビルドツールを変更する必要はないとしている。

 実際にGVFSを導入したところ、12時間以上かかっていたクローン処理が数分に短縮され、また2~3時間かかっていたチェックアウト処理が30秒に短縮され、10分掛かっていたステータス確認は4~5秒に短縮されたそうだ。

 GVFSはMIT Licenseで公開されており、プロジェクトのWebサイトより入手できる。利用にはWindows 10のAnniversary Update以上が必要。C++言語を含むVisual Studio 2015 Community Edition以上をインストールして設定する必要がある。

Git Virtual File System(GVFS)
https://github.com/Microsoft/gvfs