Rob van Oostrum wrote:
"Cleaning up" your branches is a bad idea. It just creates that much more administrative overhead. Not to mention having to tiptoe around the deletions when merging the branch back to trunk, which will affect merge tracking's performance.

What I would do instead is leverage sparse checkouts to only checkout the root folder of the branch, and selectively grab the directories you need to work with.

You can create mixed working copies by using 'svn switch' to point specific folders to their equivalents on specific branches/tags.


Regards,
Rob


BRM wrote:

Your best way to accomplish this is to create another branch (e.g. UNION_A_B) 
and then use svn:externals to map the two you want to bring together into 
sub-folders.
SVN cannot (at least to my knowledge) operate on individual files within a 
folder in this manner.

So basically:

branch/A
branch/B
branch/UNION_A_B
branch/UNION_A_B/A -> branch/A
branch/UNION_A_B/B -> branch/B

this will result in any updates to branch/A being seen on update in either 
location. Likewise with branch/B.
The user only needs to check out branch/UNION_A_B to get both.
Additionally, since you are using the svn:externals property, 
branch/UNION_A_B/A and branch/UNION_A_B/B don't really exist in the repository, 
but are stored as properties (e.g. absolute minimal storage) that tell the SVN 
client to checkout those as sub-directories of branch/UNION_A_B - so disk space 
and network traffic are both minimized as well.

HTH,

Ben
Thanks for the advice. Agreed that this can lead to an administrative nightmare, but in general users don't need to make extensive use of workspace merging. This is the first instance where this has come up for this type of development.

We use a workflow that involves

1) check out a tag
2) switch any files that need to be modified to the trunk
3) commit changes
4) make a new tag when ready for handoff

The files that we work with are very large and workspaces need to check out many dependent projects to create a functional workspace. It's not unheard of to have a workspace that takes 4-6 hours to populate.

I'd toyed with the idea of using externals in the workspace, but as mentioned svn doesn't support mixing workspaces like this. Having the data in a separate folder via an external doesn't quite work for the designer because they need the files from

My thinking now is that the only way to do this would be

1) checkout everything from the trunk
2) switch all files in tag a to tag a
3) switch everything else to tag b

But this could mean a 2 fold increase in checkout time, depending upon how much the trunk has changed.

Thanks again for the suggestions,
--Mattius

Reply via email to