Generally, version evolution has two ways: Serial evolution and Parallel evolution. Each new version that formed by the Serial evolution may be evolved from the
current latest version. So, according to the evolution process of different versions to forms a simple chain, known as the version chain. In this way, version evolution is forward based on one to one mapping relations, usually in order to compensate for deficiencies, improve performance and adapt to the environment. Parallel evolution uses one to many manners. In practice, both versions evolution forms are usually merged with each other, form the more common version map with branches, known as version tree. The version tree reflects the evolution history of the project development. The version tree example shown in figure 2.