1

By Mike Mozart

Microsoftが仮装ファイルシステムの「Git Virtual File System(GVFS)」を発表しました。GVFSはリポジトリ下のファイルシステムを仮想化することで、ファイルを開く時点でダウンロードを実行する仕組みを採用しており、大幅な高速化が実現されています。

Announcing GVFS (Git Virtual File System) | Microsoft Application Lifecycle Management

https://blogs.msdn.microsoft.com/visualstudioalm/2017/02/03/announcing-gvfs-git-virtual-file-system/



Microsoftは2013年にオープンソースの分散型バージョン管理システムである「Git」のサポートを開始しています。このGitはLinuxの分散型開発モデルを扱うために開発された管理システムですが、コードベースが約270GB(約350万ファイル)もあるWindowsの大量のファイルをGitで管理すると、「git checkout」に3時間かかったり、「git status」に10分かかったり、さらには「git clone」に12時間もかかることがあるそうです。



By KamiPhuc

Gitで大量のファイルを管理するときにかかる時間の問題に対処するために発表されたのが「GVFS」です。GVFSは、リポジトリ下のファイルシステムを仮想化することで、大量のファイルがローカルに保存されているように使うことができます。

仮想化されたファイルシステムから、全ファイルではなく必要なオブジェクトのみをダウンロードすることが可能で、例えば、「git checkout」の時間を3時間から30秒に、「git status」を10分から4〜5秒にまで大幅に高速化することに成功しています。また、リポジトリの容量を管理する機能も搭載されており、ファイルレベルで操作が行われる仕様により、IDEやビルドツールを変更する必要もないとのこと。

Ars Technicaでテクノロジー関係の記事を執筆しているピーター・ブライト氏はGVFSを評価しつつも、権限を持たないユーザがカーネルコードを修正することなく独自のファイルシステムを作成できる機能を提供する「FUSE」のようなソフトウェアが欠けている、と話しています。GVFSと同様の種類で動作する多くのFUSEファイルシステムがあり、FUSEなしではGVFSのような仮想ファイルシステムを開発し続ける最適な方法がないそうで、「これは非常に残念なことである」と指摘しています。

Microsoft hosts the Windows source in a monstrous 300GB Git repository | Ars Technica

https://arstechnica.com/information-technology/2017/02/microsoft-hosts-the-windows-source-in-a-monstrous-300gb-git-repository/



大量のリポジトリに悩まされているのはMicrosoftだけではありません。以前には、Facebookが、大量のリポジトリにGitが対応できないとして、Gitと同じながらも拡張性がより高いMercurialへ移行しました。