SVN Multi-person modification, how to manage the issue of the version as can be seen from the problem description, this is the use of configuration management tools (Code version Control tool) is a typical initial problem, to resolve this issue requires the following adjustments:
- Adopt the Mature Trunk-branch code management method;
- A dedicated or part-time person is required to be responsible for code planning and management, including the creation and merging of branches, often referred to as the Configuration Manager (CMO);
Let's take a brief look at the backbone-branch code management method:
- Three directories created in the code base: Trunk, branches, and tags, respectively, to store stable code, develop code, and published code for production environments;
- Branches can have multiple branches that can be divided by person, purpose, or version, depending on the company's circumstances.
- Typically, the project's initial project structure is created, submitted by the CMO to TRUNK,CMO, and the planned branch is created based on the trunk.
Possible solutions:
- CMO creates the following initial directory structure
Trunk
Branches
----Dev
----Test
Tags
- Developers create personal development branches based on trunks to the Dev directory for personal development, deploy code to the development environment, and submit code to this branch every day through unit tests.
- The tester merges the development branch of one or some developers under the Dev directory into a sub-branch of test, deploys the code to a functional test environment for integration or system testing.
- The performance tester deploys the test directory to the performance test environment through integrated or system-tested code to perform performance testing.
- The CMO merges the code in the test directory with the performance test into the trunk.
- When the functionality in the release plan is ready, the product Publisher can deploy the code in the trunk to the production preheating environment for a trial run.
- The test run did not find the problem, the CMO will be the trunk code to create a formal release branch into tags, can be named after the version number.
- The product Publisher deploys the latest version of tags in the code to the production environment.
- Over time, the directory of the configuration library might be structured as follows.
Trunk
Branches
----Dev
----------John.
----------Tom.
----------...
----Test
---------test-20120901
---------test-20121001
---------test-20121101
---------Test-...
Tags
----Release V 0.0.1
----Release V 0.1.0
----Release V 0.2.0
----release ... Finally, because of the frequent use of merge operations, it is unavoidable to encounter code conflicts. Conflicts need to be addressed together by the relevant code author. Based on past experience, there may be ways to reduce the chance of conflict:
- Functionality is as modular as possible, and a function should not involve modification of two or more modules.
- Do not save intermediate files, temporary files, or individual profiles for the project in the code base.
- Write rights management, avoid unnecessary error modification operation.
SVN Multi-person modification, how to manage the issue of version