Is about managing source codes by branching. Branching is a way to have 2 or more sets of source code with each has it's own development, but eventually, merging them into the main trunk.
Example, in most development, we normally have "development" & "release" version. As word means, the "development" version is meant for development & testing. But the "release" version, would be the ultimate version that roll out for production use. For this example, "release" will be the trunk & "development" will be the branch.
A view of it :
web_blog(repository)
|
+release
| |
| +front_end
| |
| +engine
|
|
+development
|
+front_end
|
+engineTo create this hierarchy :