In Apache Subversion branches and tags are effectively the same thing – a copy of an existing folder and its contents, in a new location within the same repository. The main difference is the way the user handles branches and tags:
- Branches – these should be used to work on significant changes, variations of code, and bug fixes.
- Tags – should be used as “code milestones” that provide a snapshot of your project at a specified point.
In this post, we’ll show you how to create a branch, before providing an example of creating a tag.
Creating a Branch
To create a new branch, use the ‘svn copy’ command followed by a log message (-m) and the URL of both the resource being branched, and the location where you want to create your new branch:
svn copy -m “Creating a new branch” folder-being-branched location-of-new-branch
In this example, we are creating a new branch called ‘bug fix branch’ inside the ‘branches’ folder, that will contain all the files in the trunk:
Creating a Tag
Creating a tag uses exactly the same command, although it is good practice to create a dedicated ‘tags’ folder, where you can store all your tags.
In this example, we are creating a new tag called ‘Release1,’ again by copying the files currently in the trunk.
Tip. Whether you are creating a branch or a tag, it’s worth putting some thought into your naming strategy. A coherent naming strategy allows other team members to get an insight into what development work is happening in which branch/tag, at a glance.