1.trunk is the main branch and is the place where daily development is carried out. 2.branches is a branch. Some of the phased release releases, which can be developed and maintained, are placed in the branches directory. For example, for different user customized version, can also be placed in the branch for development. The 3.tags catalog is generally read-only, where a staged release is stored and archived only as a milestone version. Note: SVN does not have a clear specification, more of the user's own habits. Here is a detailed description: For example a project has main.cpp, common.h two files, assuming that the current development is the latest version 3.0, and the 1.0/2.0 version is also in maintenance, then the project tree will look like this: project|+--trunk+ |+ +---- -Main.cpp (3.0 version of the latest file) + +-----common.h++--branches+ |+ +--r1.0+ + |+ + +----main.cpp (1.x version of the latest file) + + +----Common.h + + + +--r2.0+ |+ +----main.cpp (2.x version of the latest file) + +----common.h+ +--tags (this directory is read only) |+--r1.0+ |+ +----main.cpp (1.0 release file) + + ----Common.h ++--r1.1+ |+ +----main.cpp (1.1 release file) + +----common.h++--r1.2+ |+ +----main.cpp (1.2 release) + +----CO Mmon.h ++--r1.3+ |+ +----main.cpp (1.3 release file) + +----common.h++--r2.0+ |+ +----main.cpp (2.0 release file) + +----Common.h ++--r2.1|+----main.cpp (release file for 2.1) +----common.h to use such a folder structure, when you build the project repository, you can first build the project folder, and in which trunk, branches, Tags three empty subdirectories, and then import the project folder along with these three subdirectories to the repository. This starts development in the trunk, using the SVN copy operation when a branch or tag is needed. Where the tags directory needs to be read-only, you can use SVNThe Authz file Controls access to this directory as read-only.
What is the meaning of trunk, branches, tags in SVN?