微软和 GitHub 合作将 GVFS 迁移到 macOS,Linux - 开源中国社区
微软和 GitHub 合作将 GVFS 迁移到 macOS,Linux
周其 2017年11月18日

微软和 GitHub 合作将 GVFS 迁移到 macOS,Linux

周其 周其 发布于2017年11月18日 收藏 12

有免费的MySQL,为什么还要买? >>>  


去年,微软宣布将使用 Git 版本控制系统进行 Windows 开发。微软就要修改Git来处理Windows开发的需求,但它表示想要将这些修改整合到标准的Git客户端中。

这个计划似乎进展顺利。GitHub正在进行修改,Microsoft 和 GitHub 将合作为MacOS和Linux带来合适的客户端。

由于Git的分支特性和在开发人员中的流行程度,微软希望将代码转移到Git上。但是转型面临三个问题:

  • Git并不是为广大开发人员设计的 - 超过2万人在开发代码库;

  • 另外,Git并不是针对如此庞大的代码库设计的 - 无论是每个文件的文件数量和版本历史记录,还是纯粹的大小,都超过了300GB;

  • 使用标准的Git时,源代码库的速度慢得令人无法接受 - 常见的操作(例如检查哪些文件已被修改)都需要很多分钟。

该公司的解决方案是开发Git虚拟文件系统(GVFS)。GVFS 全称是 Git Virtual File System. GVFS 对 git 仓库存储文件系统进行虚拟化,对应 git 而言,这就是一个混合的文件系统,但 GVFS 只下载所需的对象。GVFS 同时管理 git 一些非实际的 checkout 操作,用来提升类似 status、checkout 等操作的速度。目前该项目还在开发过程中。

使用GVFS,包含元数据以及仅显式检索的源代码文件的Git存储库本地副本被虚拟化。通过取消复制每个文件(检查每个文件并对其进行修改),存储库的磁盘占用空间和使用速度大大提高。微软修改了Git来处理这个虚拟文件系统,这样客户端就不必尝试访问本地不可用的的文件。并且添加了一个新的传输协议来选择性地从远程存储库中检索单个文件。

GitHub参与是因为公司希望满足企业客户的需求。开源,免费的GitHub托管也不是非要微软做扩展工作不可 - 显然,如果有人要使用标准的Git,那么Git必须足够好的来满足他们的开发过程。但企业在有偿方面,情况会有所不同。某些行业有大量的存储库则会给Git带来问题;例如,游戏仓库通常在体积上大并不是因为它们拥有数百万个文件和数十年的历史,而是因为它们拥有大量的图形和其他资源。微软对Git所做的扩展改进对于这种大型的存储库也是有用的。因此,在GitHub中拥有相同的改进系列将使Git能够更好地为这些社区服务。

顾名思义,GVFS需要一个文件系统驱动程序才能工作。 Windows部门与工程团队合作,为Windows添加功能以提高效率。最终目的是将此功能转换为受支持的可扩展API,并在某些时候移动新的OneDrive placeholders 以使用相同的API。

微软和GitHub也正在努力为其他平台带来类似的功能,首先是macOS,后来是Linux。在这两个系统上执行此操作的明显是使用FUSE方法,这是一种以用户模式而不是内核模式运行的文件系统的基础结构(因为用户模式开发比内核模式更简单,更安全)。但是,这些公司发现FUSE的速度还不够快,Dropbox学习到了一种类似的于的Project Infinite。目前,名为Kauth(或KAuth)的macOS可扩展性机制将是最好的选择。

Git 分布式版本控制系统在开发者中间非常受欢迎,连微软也决定将 Windows 的开发迁移到 Git,但 Git 在设计时并没有考虑到 Windows 这样庞大的项目,有着数以万计的开发者,源代码文件多达数百 GB。如果使用标准的 Git,其速度之慢是难以接受的。微软因此开发了 Git 虚拟文件系统 GVFS,本地的 Git 库 副本是虚拟化的,只包含元数据和必要的源代码文件。通过避免复制所有文件,GVFS 降低占用的空间和改善了速度。GVFS 此前只支持 Windows,现在微软宣布和 GitHub 合作将 GVFS 带到 macOS 和 Linux 上。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:微软和 GitHub 合作将 GVFS 迁移到 macOS,Linux
分享
评论(21)
精彩评论
3
让git越来越好用吧

引用来自“跬步至千里”的评论

微软的开发人员都用linux和macos?
你怎么会这么理解
最新评论
0

引用来自“跬步至千里”的评论

微软的开发人员都用linux和macos?

引用来自“认真做事开心做人”的评论

你怎么会这么理解
微软的开发人员都用mac,有篇文章说过,是一个微软的工作人员不小心透露的
0
挺好的
0

引用来自“认真做事开心做人”的评论

感觉程序员社区应该不会有这么多思想不健全的人呀,但是看到上面那些mac,linux的评论。我错了

引用来自“kidfruit”的评论

@认真做事开心做人 一般来说鄙视链在任何地方都存在,只是形式不同罢了

引用来自“水山清风”的评论

但没有智商的鄙视确实可怕

引用来自“JenkinZhou”的评论

其实他们只是没有时间看完罢了,没你说的那么不健全.

引用来自“水山清风”的评论

不,只是很不习惯微软为开源作贡献就被人扁,linux 只有命令行十分高效不会卡,windows 只会无耻的窗口界面这些观点而已。
@水山清风 这是历史造成的风气,我也看不惯,但是没办法。就是有不少人见微软就无脑黑,不跟你讲道理讲逻辑,只要是微软就是恶。你别指望他们会去了解微软做的东西有什么好,他们一定会找个别的来挤兑你。什么微软东西没人用,微软技术落后,微软要完了,微软就是商人,他们才是散发着清香的开源人士,他们不会就事论事跟你具体讨论的。
0

引用来自“认真做事开心做人”的评论

感觉程序员社区应该不会有这么多思想不健全的人呀,但是看到上面那些mac,linux的评论。我错了

引用来自“kidfruit”的评论

@认真做事开心做人 一般来说鄙视链在任何地方都存在,只是形式不同罢了

引用来自“水山清风”的评论

但没有智商的鄙视确实可怕

引用来自“JenkinZhou”的评论

其实他们只是没有时间看完罢了,没你说的那么不健全.
不,只是很不习惯微软为开源作贡献就被人扁,linux 只有命令行十分高效不会卡,windows 只会无耻的窗口界面这些观点而已。
0
很让人期待的改进。
0

引用来自“认真做事开心做人”的评论

感觉程序员社区应该不会有这么多思想不健全的人呀,但是看到上面那些mac,linux的评论。我错了

引用来自“kidfruit”的评论

@认真做事开心做人 一般来说鄙视链在任何地方都存在,只是形式不同罢了

引用来自“水山清风”的评论

但没有智商的鄙视确实可怕
其实他们只是没有时间看完罢了,没你说的那么不健全.
0

引用来自“认真做事开心做人”的评论

感觉程序员社区应该不会有这么多思想不健全的人呀,但是看到上面那些mac,linux的评论。我错了

引用来自“kidfruit”的评论

@认真做事开心做人 一般来说鄙视链在任何地方都存在,只是形式不同罢了
但没有智商的鄙视确实可怕
0

引用来自“认真做事开心做人”的评论

感觉程序员社区应该不会有这么多思想不健全的人呀,但是看到上面那些mac,linux的评论。我错了
@认真做事开心做人 一般来说鄙视链在任何地方都存在,只是形式不同罢了
0
感觉程序员社区应该不会有这么多思想不健全的人呀,但是看到上面那些mac,linux的评论。我错了
1

引用来自“跬步至千里”的评论

微软的开发人员都用linux和macos?
你怎么会这么理解
0
哦, 一直以为 git 内部有个虚拟的文件系统, 原来没有啊! 这个好
0
命令行不是挺好用的吗?
0
GVFS: GNOME Virtual Filesystem
Linux上已经有GVFS了,GitHub也用这个名字,容易混淆.
0
微软的软件实力,还是可以期待的。。
0
微软的开发人员都用linux和macos?
0
微软要用Git却要开发MacOS和linux客户端
是不是要承认自己的开发人员都是用macOS和linux开发的win?
0

引用来自“路人丁丁4”的评论

这文章的翻译不行呀
@路人丁丁4 前面一开始就像机器翻译一样
看样子是不是微软想让Git丧失离线开发的能力?
3
让git越来越好用吧
0
这文章的翻译不行呀
顶部