tags:

views:

52

answers:

3

I have a project with a structure like this:

project
  code
  art
  config

Art is over 1Gb and likely to cause pains when switching branches, plus developers don't need it anyway. So I want to move it out into a separate top-level project, project-art. That's fine in trunk, but I already have some branches being actively worked on... so the actual current setup is more like:

project
  trunk
    code
    art
    config
  branches
    branch123
      code
      art
      config

How can I move art out of the conceptual structure without it screwing up when branches get merged back?

I can see one option is to move it from project/trunk ---> project-art/trunk and then simply delete art from each branch, but that seems hacky. Or, when I move it from trunk will it automatically be removed from branches too since they are lazy copies?

A: 

I'd leave the branches alone, move project-art in the trunk and just merge art separately. Subversion sucks at tracking renames (it's just a delete and remove), and doesn't merge them.

  1. Merge svn://repo/project/branches/branch123/art with svn://repo/project-art

Then do the rest

  1. Merge svn://repo/project/branches/branch123/code with svn://repo/project/code
  2. Merge svn://repo/project/branches/branch123/code with svn://repo/project/config

I can see one option is to move it from project/trunk ---> project-art/trunk and then simply delete art from each branch, but that seems hacky.

I suppose if you have everything from art merged back to trunk then it is ok to delete them. Since like you said the programmers don't use them anyways.

Or, when I move it from trunk will it automatically be removed from branches too since they are lazy copies?

It won't automatically be removed from the branches. You'd have to merge trunk to the branch for that to happen.

Ryu
We have only a couple of branches so deleting art from them is safe, and not too time consuming. Though it doesn't sound the right way, doing this and then moving Art out of trunk appears to get the result most easily.
John
+1  A: 

For feature branches that will eventually be merged back into trunk, you will normally merge all of the latest trunk changes into the branch before reintegrating the branch back to the trunk. Therefore, if you move art out of trunk now and leave the branches alone, then art should get deleted from the branches the next time they sync up with trunk.

ChrisH
A: 

If the 'art' subdirectory won't be modified in any of the branches, then you won't have to worry about the merges. Just go ahead and move 'art' into its new location. The branches will merge back into the trunk without conflicts since they have no changes to 'art'.