tags:

views:

33

answers:

3

Hi,

I have an SVN server setup at home which is currently being used by 3 people including me. I have a few branches and tags from/of the trunk. All users have checked out the complete repository, that includes the trunk, branch, tags. Now when a new tag is made of a stable release, all users update their tags. This is where the issue that I have starts. A lot of times, many files are left unchanged in the trunk, and then tagged as a stable release when the list of bugs for that release is fixed. When the update starts, SVN grabs all the files, including the ones that were not changed, from the server. It also takes a long time to update the tag.

I want to ask if there is a way to get subversion to get all the files from the local trunk, put it in the new tag, and then update the tag and replace only the files that have changed. So if the trunk directory is:

trunk
- Art
- Engine
--- Graphics
--- Physics //MODIFIED
- SFX
--- Dialogue

and I tag it, can svn copy all the files from trunk into the new tag, and then update the tag accordingly?

One solution I know is to export the trunk and then update the tag. Is there a better way by any chance?

+3  A: 

Why do users need to check out the complete repository? The normal thing to do is to checkout yourrepo/trunk or /yourrepo/branches/yourbranch.

If you still for some reason want to checkout the root directory, I guess you could accomplish what you ask for by copying trunk to tags/yournewtag, then use 'svn switch' on that tag.

rlovtang
I second @rlovtang's answer. If you need to check out a specific branch or tag next to the trunk, do it on demand, so check them out separately.
jeroenh
I agree but that is not the problem I am facing. When someone checks out a tag, marked Release1.0 and then after a while Release1.1 appears which has many of the same untouched files as Release1.0, why waste bandwidth and time copying files that are not different from the previous release when you already have those files? It would be a good feature if SVN copied local files over to the new tag first (if there are any) and then update them to the new revision. I guess I should rethink the way my trunk is layed out.
Samaursa
@Samaursa take a look at svn switch. http://svnbook.red-bean.com/en/1.5/svn.branchmerge.switchwc.html
rlovtang
@rlovtang brilliant, exactly what I was looking for. Could you answer the question with the same sentence (or maybe a little bit elaborate form) so that I can check it as the answer?
Samaursa
A: 

Unless you need to work in the tag, which you probably shouldn't, you don't even need a local copy. Just do a URL to URL svn copy, something like "svn copy http://svn/repo/trunk http://svn/repo/tags/mytag". Much faster.

If you're talking about a branch, I'd do the same, but then checkout the branch to work on it.

Andrew B
A: 

The answer I was looking for is using SVN switch - quite a basic feature of SVN that I was not aware of.

rlovtang has answered the question, but in a comment. Once he officially answers the question I will switch the checkmark to his answer.

Samaursa