去年一个令人振奋的消息就是微软宣布将使用Git版本控制系统进行Windows开发。微软不得不修改Git来处理Windows开发的需求,但表示它想要将这些修改接受到上游并且集成到标准的Git客户端中。
这个计划进展很顺利。昨天,公司宣布GitHub正在进行修改,两家公司将携手为MacOS和Linux带来合适的客户端。
由于Git的特性,微软希望转移到Git上,就像它容易的分支和在开发人员中的流行一样。但是转型面临三个问题。Git并不是为广大开发人员设计的 ,目前超过3000名人员正在积极开发代码库。另外,Git并不是针对如此庞大的代码库设计的,无论是每个文件的文件数量和版本历史数量,还是纯粹的大小,都超过了300GB。使用标准的Git时,使用源代码库的速度慢得令人无法接受。常见操作(如检查哪些文件已被修改)需要耗时多些时间。
该公司的解决方案是开发Git虚拟文件系统(GVFS)。使用GVFS,Git存储库的本地副本被虚拟化,使其包含元数据以及仅显式检索的源代码文件。通过消除复制每个文件的需要,并且因此检查每个文件以进行修改,存储库的磁盘占用空间和使用速度大大提高。微软修改了Git来处理这个虚拟文件系统。客户端被改变了,这样它就不会不必要地尝试访问本地不可用的文件,并且添加了一个新的传输协议来选择性地从远程存储库中检索单个文件。
这一切证明是成功的,今年5月Windows开发大幅迁移到了Git。微软表示,到目前为止,大约一半的修改已经被上游接受,上游的Git开发者普遍赞同公司采取的改进软件扩展的方法。雷德蒙德还表示,它已经愿意改变其方法来满足上游Git的需求。最大的复杂性在于,Git对兼容性采取了非常保守的方法,要求存储库在各个版本之间保持兼容。
GitHub的兴趣和参与是由公司希望满足企业客户的需求所驱动的。开源免费的GitHub托管并不需要微软所做的扩展工作 。显然如果有人使用标准的Git,那么今天标准的Git必须足够好才以满足他们的开发过程。但对于有偿的企业方面,情况会有所不同。某些行业有大量的存储库,这会给Git带来一些问题。例如游戏在物理存储库通常并不大,因为它们拥有数百万个文件和数十年的历史,而是因为它们有大量的图形和其他资源。微软对Git所做的扩展改进对于这种大型的存储库也是有用的。因此,微软本身也有类似的企业需求; 该公司告诉我们,西门子希望从Team Foundation Server版本控制转移到使用Git。但是只有在规模得到改善之后,才能做到这一点。现在TFS版本控制规模更好。
顾名思义,GVFS需要一个文件系统驱动程序才能工作。Windows部门与工程团队合作,为Windows添加功能以提高效率。目的是最终将此功能转换为受支持的可扩展API,并在某些时候移动新的OneDrive占位符等系统以使用相同的API。
微软和GitHub也正在努力为其他平台带来类似的功能,首先是macOS,后来是Linux。在这两个系统上执行此操作的明显方法是使用FUSE,这是一种构建以用户模式而不是内核模式运行的文件系统的基础结构,因为用户模式开发比内核模式更简单,更安全。但是,这些公司发现FUSE的速度还不够快,Dropbox在开发类似功能Project Infinite的时候也学到了一些东西。目前这些公司认为,采用名为Kauth或KAuth的macOS可扩展性机制将是最好的选择。
本文由Leery原创 未经授权转载必究
相关资讯
最新热门应用
热币网交易所app官网版苹果手机
其它软件50.42MB
下载必安交易所官网
其它软件179MB
下载x.plus交易所app
其它软件223.89MB
下载matic交易所
其它软件225.08MB
下载币客交易所app官网安卓
其它软件77.27M
下载zb交易平台官网app
其它软件223.89MB
下载币咖交易所链接
其它软件49.32M
下载atom交易所中文版免费手机版
其它软件223.89MB
下载尚亚交易所app手机版
其它软件225.08MB
下载欧联交易所app官网
其它软件34.34MB
下载