Version, as one practical example is the configuration item that has been identified. Version used to define a Specific practical example should have what kind of content and attributes. With the progress in software development, versions are also constantly evolving; these different versions of different configuration items constitute a complex version space. Version of a system is a system example, in a way different from the practical examples of other systems. The new version of the system may have different functions, performance, may modify the system error. Some versions may have no difference in function, just design for different hardware or software configuration. If only slight differences between versions, and sometimes a version is called a variant of another version. A system release version is the version to be distributed to customers. Each system release version should include some new functions, or for different hardware platforms. Versions of a system are far more than the release versions, because the institution's internal versions are created for internal development or testing, and some of the internal versions will not be released to the customer. 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