How do I create a branch?
How do I create a branch in SVN?
Create a new branch using the svn copy
command as follows:
$ svn copy svn+ssh://host.example.com/repos/project/trunk \
svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
-m "Creating a branch of project"
Branching in Subversion is facilitated by a very very light and efficient copying facility.
Branching and tagging are effectively the same. Just copy a whole folder in the repository to somewhere else in the repository using the svn copy
command.
Basically this means that it is by convention what copying a folder means - whether it be a backup, tag, branch or whatever. Depending upon how you want to think about things (normally depending upon which SCM tool you have used in the past) you need to set up a folder structure within your repository to support your style.
Common styles are to have a bunch of folders at the top of your repository called tags
, branches
, trunk
, etc. - that allows you to copy your whole trunk
(or sub-sets) into the tags
and/or branches
folders. If you have more than one project you might want to replicate this kind of structure under each project:
It can take a while to get used to the concept - but it works - just make sure you (and your team) are clear on the conventions that you are going to use. It is also a good idea to have a good naming convention - something that tells you why the branch/tag was made and whether it is still appropriate - consider ways of archiving branches that are obsolete.
If you're repo is available via https, you can use this command to branch ...
svn copy https://host.example.com/repos/project/trunk \
https://host.example.com/repos/project/branches/branch-name \
-m "Creating a branch of project"