www.hg288.com [Original selection] Thinking about the frequency of changes and code merger

[Original selection] Thinking about the frequency of changes and code merger

Public number: Improve march Source: Time: 2020-01-08 18:55:43

Millennium Tongzhou vitality north stream

Conquer the underworld

The ultimate goal of configuration management is to ensure the integrity of work products. What is integrity? Not many: No redundancy; Many: No omissions; Correct: No errors; Consistent: The versions are consistent with each other. CMMI-Dev 中可以都理解为配置项。 The work product includes configuration components and configuration units, which can be understood as configuration items in CMMI-Dev . [1] The baseline provides a stable basis for the evolution of configuration items [1] .

Specific goals in the configuration management process area require the establishment of a baseline, which in practice requires the creation or release of a baseline; after the baseline is established, changes need to be tracked and controlled, and finally completeness is established. The goals and practices in this process area have the problem of balancing management costs in the actual project development process. Once the baseline is established, if a configuration item changes, it needs to be changed to ensure the integrity of the configuration item, but if it is a minor document adjustment, does it need to be changed again?

If all changes are changed, the management cost will be high; but if small changes are not changed, then the integrity of the configuration will be a problem. In the actual project, the minor changes in the selected configuration items are not changed temporarily, and the change registration is unified after a period of time. If major changes occur, the configuration registration must be performed to ensure the integrity of the configuration. This method is a balance between cost and configuration integrity. Workaround. Although there is a problem of ambiguous boundaries of size change, it can only be implemented now and then adjusted according to the implementation.

Related to configuration baselines are also the frequency of code merges and branching strategies. The use of any kind of research and development mode will need to balance the number of branches and the frequency of merging. The more branches, the more convenient it is to develop. the cost of. [2] ,具体描述如下(原文链接: http://sanwen.net/a/hnacrqo.html ): Regarding this balance, there are some practical empirical principles in the network that can be borrowed from [2] , which are described as follows (the original link: http://sanwen.net/a/hnacrqo.html ):

bugfix 的代价,将先测完的功能先发布。 ① For a simple and pure project, during development, you can choose a branch, the same set of development, the same set of tests, and parallel development and testing, or each function is only tested first and then released uniformly, or bear the cost of merging bugfixes . Features tested first are released first.

② For complicated projects, different developments, different branches, and different tests should be used to test different branches. This is not desirable.

③ For complicated projects, different developments and different branches should be merged by the developers to resolve conflicts, and then submitted to a group of tests for testing under the same test case. The best case is to test it after merging it into the trunk. If there are insufficient resources, then merge this big branch directly into the trunk for testing. bugfix ,合并到大的测试分支进行验证并发布,还要把 bugfix 合并到各个正在开发新功能的开发分支中,以此不断循环。 If the project also wants to develop and test in parallel and release the first test first, it is necessary to carry out bugfixes on each test branch , merge them into a large test branch for verification and release, and also merge bugfixes into each new feature being developed In the development branch, this cycle continues.

Where are the evil ghosts?

The balance between various costs in configuration management requires multiple considerations, and a specific configuration management plan can be formulated in combination with actual conditions. Therefore, in addition to the basic configuration item identification, permission settings, and configuration database management, the formulation of a configuration management plan should also be based on the actual project situation and reach a consensus, so that the configuration management plan can be truly implemented Landed to improve the efficiency of project management and reduce management and communication costs.



Sei B. CMMI for Development v1.3[J]. 2010. [1] Sei B. CMMI for Development v1.3 [J]. 2010.

从分支的开发合并看得失 . http://sanwen.net/a/hnacrqo.html. [2] See the gains and losses from the development and merger of branches . Http://sanwen.net/a/hnacrqo.html.

Improve march (gh_47da540e377e)

Spider pond