views:

40

answers:

2

Our trunk directory contains about 100mb of code and we create tags from the trunk directory. Normally, this is not an issue because a tag takes up no space until you need to use it for something. Since branches are created from tags in SVN, how can I create a branch from a tag wtihout first checking out the tag? It appears I need to do a Tortoise Update from Windows Explorer to get the tag down to my local machine before I can use Tortoise > Branch/Tag... to create a branch from it. This seems illogical since we don't make changes to tag folders, and it requires that I check out 100mb of code, only to create a branch, and then check out another 100mb of code in the branch folder, where the changes will actually be made.

Ideally, I'd be able to create a branch directly in the repository via RepoBrowser - but I can't see an option for it there.

Am I missing something?

+1  A: 

Creating a branch is just a matter of copying the desired directory to another location. This can be done directly in the Repo Browser.

There is nothing special that differentiates a branch from a tag as far as Subversion is concerned. It is just a convention to store them under separate parent folders, named 'branches' and 'tags' accordingly.

Ben Hoffstein
Thanks for the info - just so I'm clear, you are saying I can continue to create tags like I normally do. To create a branch, I can go into Repo Browser and right-click the tag folder and select Copy To..., and specify new folder under branches? That makes a lot more sense and keeps everything a shadow copy on the server until I'm ready to check out the branch to my local machine to do some work.
Scott Vierregger
Yeah exactly. You don't need to only create branches from tags though. Many people will create a branch by copying the current trunk. Depends on your workflow...
Ben Hoffstein
Thanks for the help.
Scott Vierregger
A: 

The only difference between tags and branches is your attitude towards them -- they are equivalent behind the scenes -- shadow copies made in the repository.

You don't even need a working copy to create a branch/tag. For example, you can use this command-line:

svn copy http://server/test/trunk http://server/test/branch -m "make branch"

(assumes you have SVN.EXE in addition to TortoiseSVN, otherwise, use Ben's answer)

William Leara