Microsoft、巨大なGitリポジトリを扱うための仮想ファイルシステム「GVFS」を発表 95
ストーリー by hylom
全貌が掴めないコードに 部門より
全貌が掴めないコードに 部門より
ある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年以上も開発が続けられていたコードを分割することは非常に難しくコストのかかるものだったそうだ。そのためこのような解決方法がとられたという。
あれ、VSSじゃないの? (スコア:3)
MSってVSS使ってるんだと思ってたわ。
Re:あれ、VSSじゃないの? (スコア:2)
Access使ってると思ってたらODBC経由で実DBがMySQLだった…みたいなこと?
#スンマセン…VSSもGitも使ったことありません…
Re:あれ、VSSじゃないの? (スコア:1)
AccessならMSSQL Express(MSDE)使うのでは?
Re: (スコア:0)
ええ、MSDEってまだ現役なの?
Re:あれ、VSSじゃないの? (スコア:2)
Team Foundation Serverなら使ってそう。
Re:あれ、VSSじゃないの? (スコア:1)
MSめ。紛らわしい名前付けやがって・・・
https://ja.wikipedia.org/wiki/GVfs [wikipedia.org]
GNOME Virtual File System (スコア:2)
いや、本当に。
ネーミングセンスが悪過ぎると言うか、公開と命名に当たって事前調査全然してないよね。
折角 Bash on Ubuntu on Windows みたいな事やってるんだから、せめてこの辺は気を遣えよって思う。
少なくとも現状ではググってもこれがトップに来るし、
https://archive.is/DTwc9 [archive.is]
Microsoft が公開してる GitHub 上でも GNOME/gvfs を食っちゃった形になってる。
http://archive.is/x4K0Y [archive.is]
上のコメントの通り、Wikipedia の各国語版でもこれまでは gvfs と言えばこれであり、曖昧さ回避のためのページも出てこない状態。
つまり、Microsoft が Git Virtual File System なんて言い出すまでは、gvfs は Gnome Virtual File System でほぼ一意に意味が通っていた。
Git Large File Storage
https://git-lfs.github.com/ [github.com]
が glfs じゃなくて git lfs って言ってるんだから、
せめて git vfs くらいに揃えとけと思うんだけど
まさかこっちに配慮しちゃった?
https://www.google.co.jp/#q=%22git+vfs%22 [google.co.jp]
uxi
Re:GNOME Virtual File System (スコア:2)
Issue 上げてやろうかと思ったら既に 4 日前の時点で Issue 上がってたwww
https://github.com/Microsoft/GVFS/issues/7 [github.com]
https://github.com/Microsoft/GVFS/issues/15 [github.com]
一応、現状はプレビュー版で正式なリリースじゃないから将来的には変えるつもりみたいな事は言ってるけど、どうなる事やら。
uxi
Re:あれ、VSSじゃないの? (スコア:1)
舞台裏を憶測すると、今まで使っていたところをgitに移そうとしてるんじゃないかなあ。
お遊びプロジェクトにWindowsやOfficeのコードベースへのアクセスを許すとは思えないから、
結構本気のプロジェクトじゃないかと思う。
Re: (スコア:0, フレームのもと)
しかしまあ、みんな何も知らん(または10年以上昔の知識で止まってる)くせに調べもせずにネガティブなことを書くのな
Re: (スコア:0)
先生! 知識がないんで、何を調べたからいいかわかりません!
ついでに知識がないかもわからないので、書き込みも止められません!
Re:あれ、VSSじゃないの? (スコア:1)
つうかTFSも内部じゃ使ってない売るためだけのシステムだったんだね
どう考えてもGit一択だろって言ったのにマイクロソフトのブランドに騙されてTFS導入したうちの会社は本当にアホだわ
Re: (スコア:0)
ずいぶん前からMSもGitをお勧めしてたし、TFSだってバージョン管理にGitを選択できるようになっていたんだが。
さて、みんなにここで問題だ。
アホはどこのどいつでしょう?
Re: (スコア:0)
TFSのバージョン管理「以外」の機能について、いくつご存知?
Re: (スコア:0)
> Git一択だろって言ったのにマイクロソフトのブランドに騙されてTFS
?????????????????????????????????????????????????????????????????????
コード管理はGit使うよう設定すればいいだけでは???????????????????????????????????
Re: (スコア:0)
まわりの人間がみな自分よりバカなのと、まわりの人間がみな自分より賢いのでは、どちらがいい環境なのか、考えるまでもないですね
Re:あれ、VSSじゃないの? (スコア:1)
Ars Technicaの記事 [arstechnica.com]によると、以前はPerforceのカスタマイズ版と見られるシステムを使っていたらしい。
VSSについては「データベースがよく破損するため、ソースコードをゴミ箱に放り込んで火にかけるのと大差ない」とボロクソに書いてあるのが笑える。まあ、たしかに昔からそういう評判だったけど。
Re: (スコア:0)
TFS?
VS上で作った奴を管理するには向いてるとは思ったけどね。
まあ一つの目的の為に複数の方法を使う多重化の一つだと思うよ。
Re: (スコア:0)
ふるっw。VSSはVB全盛の時代だろ。SVN→TFSと変わって、GitもVisual Studio対応は標準で対応してるよ。
古今東西「バージョン管理システム」 (スコア:2)
今だに"CVS"と"CSV"がごっちゃになる!
Re:古今東西「バージョン管理システム」 (スコア:1)
CVSはもう忘れていい単語なのでCVSと聞いてもCSVの事だと思っていればよいです。
Re: (スコア:0)
CVSは Concurrent Versions System
CSVは Comma Separated Values
の略と覚えていれば混乱しないと思いますが
もう少し簡単な方法として
- CVSは「バージョン管理システムだからVS」とか「システムだから末尾がS」
- CSVは「コンマ区切りだからCS」とか「値だから末尾がV」
という感じで覚えるのはどうでしょうか?
Re:古今東西「バージョン管理システム」 (スコア:2)
立ち止まって考えれば間違えないけど、書き間違えた時や読み流してる時は気づきにくいんだよなあ。
# CVS と VCS はたまに間違える……と思ってたら CVS と CSV の話だった。
svn-init() {
svnadmin create .svnrepo
svn checkout file://$PWD/.svnrepo .
}
Windows上のGitは遅い (スコア:1)
ずっとWindows上のGitは遅いと言われていましたが、これで解決するのかな?
Is Git noticeably slower on Windows compared to Linux/OS X?
https://www.reddit.com/r/git/comments/3ahpxe/is_git_noticeably_slower_... [reddit.com]
Benchmark cp + git on linux v.s. Windows: why such differences?
http://stackoverflow.com/questions/36923253/benchmark-cp-git-on-linux-... [stackoverflow.com]
Re:Windows上のGitは遅い (スコア:1)
むむ、これってつまりGVFSってWindows向けに特化したファイルシステムで、LinuxやmacOSユーザにはほとんど恩恵がないってことなのかな。macOSユーザのGit使いとして、このアナウンスにかなり期待してたんだけど。
Re:Windows上のGitは遅い (スコア:1)
MacやLinuxへと移植する予定はあるようです。
https://github.com/Microsoft/GVFS/issues/4 [github.com]
ただ、今の実装がC#なのは頂けませんね。
Re: (スコア:0)
MonoとかDotNetCoreとかあるんだし、何とかなるんじゃない?
#そういえば、上記二つってネイティブコンパイル出来たっけ?
Re: (スコア:0)
Monoで動くでしょうし、ネイティブコンパイルもできますが、ファイルシステムにGCのある言語はちょっと怖いですね…。
GCのせいでOOMに殺されやすいはずですし。
Re: (スコア:0)
大丈夫!macの上でWindows動かせばいいんだから。
Re: (スコア:0)
自慢のNTFSが効いてるのかな
Re:Windows上のGitは遅い (スコア:2, 参考になる)
タレコミの元記事 [microsoft.com]のコメントでも、「変なもの作るよりNTFS直せ」(意訳)って言われてますねw
NTFSは時代遅れとなっていて、Microsoftは既に今世代ファイルシステムとしてReFSを用意しています [microsoft.com]。
しかし、ReFSもベンチマーク性能が芳しくないですね。Windows Server 2016搭載のReFS V2で改善されたのだろうか?
Re: (スコア:0)
NTFSとReFSは併存させるつもりでしょうよ。多分安定していて障害に強いReFSと多機能なNTFS。
お願いですマイクロソフト様デスクトップ版のウィンドウズとNTFSの組み合わせでも重複排除を使えるようにしてください。ついでにデスクトップでもReFSを使えるようにしてください。
Re: (スコア:0)
これ、新しいファイルシステム作るよりgitを改善すべき事例では…。
Re: (スコア:0)
このファイルシステムをマージできればいいけど流石に無理だろうから延々gitの変更に追従する努力が必要になるでしょうね。
Re: (スコア:0)
遅い以前に、Gitの仕組みとNTFSの仕様が絶望的に相性悪いからどうしようも無い気が。
WindowsでGit使うと使ったドライブのMFTが酷いことになるし・・・
Re:Windows上のGitは遅い (スコア:1)
Gitは小さなファイルを大量に生成するこの場合NTFSだとMTFの肥大化と断片かが進む。最終体にパフォーマンスが極限まで低下する。Unix系だとiodeが枯渇して止まる。
どっちがいいかは知りません。
これは笑える (スコア:1, 興味深い)
GVFS requires Windows 10 Anniversary Update or later
初っ端から笑わせにくるこのセンス。嫌いじゃない。
一体どこのバカがあえてWindows、ましてやAuto Updateが勝手に再起動まで行うWindows 10でgit鯖を立てるのか…。
だいたいNTFSってlink/unlinkが異常に遅いじゃん?
それではgitやmaildirは使いものにならんよ。
しかし一番の笑いポイントは、わざわざgit使うのにフルコピー全否定とかwwwwwww。
それ進化じゃなくて退化ですからwwwwwwwwwwww。
ほんとこれ↓。
The whole point of git is that you have identical copy on your machine. Why take away git's biggest advantage?
Microsoftよ。もういい。
おまえらにgitは早すぎた。
そんなにフルコピーしたくねえんなら、初めからMercurial使っとけ。
# つうか、「巨大なGitリポジトリにおいて(ドヤァ」ってwwwwwww
# 誰一人指摘しなかったんだろうか? 「リポジトリ分けろよ」ってさwwwww
Re:これは笑える (スコア:1)
Re: (スコア:0)
「笑いポイント」
Re: (スコア:0)
笑いどころが全くわからない…
Re:これは笑える (スコア:2)
バイナリーファイルをしこたま運用する用途に (スコア:0)
WEBサイトとか動画編集とかCADとか
NTFSはデフラグが不要 (スコア:0)
とか平気で言ってた会社だぞ。
信用できるか!
Re: (スコア:0)
サボってる、というか遅延読み込みの対象なるのは、現在チェックアウトされていない連中でしょ。
gitはcloneすれば全部の歴史ごと取ってくるから遅い、という話にたいする回答のはず。
Re: (スコア:0)
ビルドに12時間かかるなら今まではクローン+ビルドで24時間かかってたって事だろ?
足し算も出来ないのか?
Re: (スコア:0)
「ビルドに12時間かかる」というのはどこから出てきたのか?
文章も読めないのか?
Re: (スコア:0)
読めないから元コメントの意味を説明してくれないか?
Re: (スコア:0)
一旦ビルドしてみるから、結局ダウンロードに12時間の時間を取られるのは変わらないんではないだろうか。
Re: (スコア:0)
必要に応じてファイルをダウンロードすると書いてあるのに、全ての履歴まで持ってくるcloneと同じだけ時間がかかると思うのは無理が無いか?
Re: (スコア:0)
現文読解がどうしようもなく不得意なんだね。