最新版本的开源版本控制系统加入了新的diff启发式算法,让diff结果更清晰。
开源Git分布式版本控制系统,也是代码分享网站Github的基石,发布了一个新的升级版本。新版本中子模块的速度更快、对diff程序和测试功能进行了改进。
Git 2.9版本于本周发布,丰富了子模块选项。用户可以在一个仓库的子目录下维护另一个Git仓库,子模块的改进专注于速度和灵活性的提升。
“在最近一次发布中,我们介绍了如何使用--jobs=<N>
选项并行获取子模块,这样了大大节省时间”,GitHub基础设施工程经理Jeff King说道,“现在,你还可以在克隆或更新子模块时使用--jobs
选项”。用户可以设置submodule.fetchJobs
配置项,这样每次处理子模块都可以并行执行”。
Git 2.9版本中diff引擎加入了一个新的启发式算法,diff结果变得更清晰。“diff的主要目的是展示变化、增加及删除的内容”,King解释说,“但是,由于Git只能看到文件‘之前’与‘之后’的状态,有时候diff给出的结果让人感到费解”。升级后的启发式算法能够精确的描述用户的更改。“新的启发式算法还处于试验阶段,未来可能会修改或者作为默认选项”,King说道,“目前,我们可以在命令行加入--compaction-heuristic
选项或者在git配置文件中设置diff.compactionHeuristic
进行启用。除此之外,对diff文件已经默认开启了重命名检测。
Git 2.9版本通过交互式rebase功能使得测试所有分支变得更加简单。“交互式rebase的核心是一组操作:选择一个提交,在它上面进行‘挤压’,然后编辑消息等等”,King解释道。
(译者注:这里的“挤压(squash)是指把分支里的每个提交取消掉,并且把它们临时保存为补丁,然后把分支更新为最新的目标分支,最后把保存的这些补丁应用到当前分支上。)
rebase操作是在新分支上对一系列提交的回放。King说道:“除了其他功能,rebase最重要的一点是可以很好地组织你的工作,让代码审查者可以看到一个干净的、有逻辑的提交序列”。
King还强调了Git项目对Github的重要性。“GitHub在两方面依赖于Git。其一,它是大多数用户用来创建和管理托管仓库的客户端软件。其二,我们的服务端基础设置使用Git作为与仓库数据交互的核心工具”。
原文:Git 2.9 improves submodules, diff readability
作者: Paul Krill
译者:赖信涛
责编:钱曙光
OpenStack Days China将于7月14-15日在北京国家会议中心举办,届时包括OpenStack基金会的Jonathan Bryce、Mark Collier、Alan Clark等大牛都将来到大会现场和2000名参会者一起坐而论道,共话OpenStack大势,现在报名票价优惠,欲报从速。