找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: 美女
查看: 845|回复: 0

[技术] 解释一下Windows开发里面出现的一些版本号特殊记号,如winmain,fbl

[复制链接]
发表于 2011-2-11 18:28:04 | 显示全部楼层 |阅读模式

自从代号Longhorn的WindowsVista开发中的那次“代码重置”(Reset)之后,微软在Windows开发中引进了虚拟版本实验室(Virtual Build Labs, vbl),后来在Windows 7的开发中改称为特性版本实验室(Feature Build Labs, fbl)。每一个进行Windows开发的小组都拥有自己的特性版本实验室,例如进行多媒体开发的叫fbl_multimedia, 进行系统外壳开发的叫fbl_shell。在Windows的开发中,有相当多的fbl版本。

这些特性版本实验室指的是包含了正在开发的代码的不稳定的Windows版本,而大家见惯的winmain版本则是稳定的、包含已经完成的功能代码的版本,而且已经通过了整合测试(integration tests)。由于winmain分支的版本已经通过整合测试,这种版本基本上可以说是可以发布的版本。

而在fbl版本和winmain版本之间有两种转换方式,分别叫做向前整合(Forward Integration)和向后整合(Reverse Integration)。下面详细说一下这两者:

向后整合

当一个在fbl版本里面新开发的功能被完成,而且通过整合测试后,这个fbl版本就被提升成为winmain版本,这个过程就被称为向后整合。只有在代码经过单元测试(Unit Tests) [1],确保其稳定性后,代码才会被从fbl版本整合进winmain版本。

向前整合

如果winmain版本里面的代码被合并至一个fbl版本,这个过程被称作向前整合。由于fbl分支的版本的代码在开发过程中一致在不断进化,而winmain分支的版本需要整合所有开发分支的版本所作的更改,向前整合就显得很重要了。通常当来自fbl版本的代码一被整合进winmain版本,向前整合就开始了。然后新整合进winmain版本的代码将被整合进所有正在开发的fbl版本。因为winmain版本的稳定性已经得到保证,因此向前整合的过程总是安全的。

分支(Branching-off)

“分支”的过程和向前整合相当类似。当Windows的代码库已经准备好发布时(例如说公测的Beta版、RC版或者是RTM版),一个从winmain版本而来的分支版本就会被生成(例如winmain_win7beta, winmian_win7rtm)。通常这些版本的代码不再会被向后整合进winmain版本。

另外,热补丁版本(Hotfix)也算是winmain版本分支而来的分支版本。不同于那些特别发布的分支版本,热补丁版本的代码会被向后整合进winmain版本。


[1]单元测试,为软件测试的一种常用方法,就是将应用程序的所有源代码,隔离成最小的可测试的单元,保证每个单元的正确性。理想情况下,如果每个单元都能保证正确,就能保证应用程序整体相当程度的正确性。



翻译自Windowswiki,原文如下:



    After the reset of Longhorn, which becameWindows Vista, Microsoft introduced virtual build labs (vbl) which werereplaced by feature build labs (fbl) in Windows 7. Every team working onWindows has its own feature build lab (e.g. fbl_shell, fbl_multimedia,fbl_powershell, fbl_wdk, fbl_tools, fbl_dev, etc. — there are plenty of fbl’s).

      The fbl’s (feature build labs) are unstabledevelopment branches which contain the code that is under construction, whereasthe winmain branch contains completed functionality that has passed integrationtests. Since the winmain branch must contain code that has passed integrationtests, it is (or should) be always ready for a release.

   Basically there are two processes betweenwinmain and fbl branches. One of them is called Forward Integration(FI)and the other is called Reverse Integration (RI). In thefollowing I will try to illustrate and describe both processes.

Reverse Integration    When a new functionality in a fbl branch iscompleted and can pass integration tests, the code gets promoted from that fblbranch to the winmain branch. This process is referred to as reverseintegration. A fbl branch can be reverse integrated to the winmain branch onlyafter unit tests have verified the stability of the fbl branch.

Forward Integration    If code from the winmain branch gets mergedto a fbl branch, the process is referred to as forward integration. Since thefbl branches constantly evolve, forward integration is very important becausethe winmain branch integrates changes from all development branches. Usuallyforward integration occurs as soon as any development (fbl) branch integratesinto the winmain branch. The code from the winmain branch gets frowardintegrated into all development branches then. Because the winmain branch iskept stable, forward integration to the feature build labs is safe.

“Branching-Off”    “Branching-Off” is very similar to forwardintegration. When the Windows codebase is ready for a release (e.g. PublicBeta, RC, RTM), a branch from the winmain branch gets created (e.g.winmain_win7beta, winmian_win7rtm). Usually these branches are not reverseintegrated back into the winmian branch.


Hotfixes are also special branches branched-off the winmain branch. Different fromspecial release branches, hotfixes are reverse integrated into winmain.


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表