Guide: What are Trunks, Branches, and Tags
If you are new to repositories (SubVersion / SVN, Git, etc), then this brief explanation should help.
Please note that the name(s) of these can change from repo to repo and be whatever the owner wants. However, it is best practice to follow this naming convention to avoid confusion. Also note that some companies use these directories differently than others.
What is a Trunk?
This is where the main development activity is.
Any code being worked on is published here.
But what if you want to do some large, possibly buggy changes? Well…
What are Branches?
If you want to do large changes to code, then it’s best to keep the trunk intact by creating these changes in a branch first.
This allows for users to use the Trunk in its “better state” without having to worry about your new, possibly buggy, changes. Bug fixes can be done here too.
Once the branch is fully tested and deemed stable, it can be committed to the Trunk.
This change could perhaps be big enough that the code has reached a new version — i.e. going from 1.0 to 1.1. What do we do then? Let’s create a…
What are Tags
Tags can be thought of as a time capsule or snapshot of a code release.
Every released version of the code goes here so that you have replicas available to use in case you would like to do things like reproduce bugs or re-release old versions.
Tags are NEVER suppose to be edited in order to preserve the integrity of the release states.