Are nested trunk / branch / tag acceptable?

In a recent embedded project, we used the following svn structure:

project branches tags trunk electronics software branches tags trunk 

As you can see, in the software part there is a nested directory of branches / tags / chests. This was pretty practical for software developers as they could just work there without worrying about the rest.

However, this does not look right for me, it can be confusing due to multiple branching levels, and people working higher in the hierarchy may be unhappy with all the garbage they need to load if they check the upper trunk ...

So, I’m thinking about going to the repository for only one trunk for the next project, and if developers don’t need non-software materials, they can just check project/trunk/software and go to project/branches/br-1234/software , etc ..

What do you think of enclosed chests? Pros & cons please!

As a side question: should branches / labels always be copies of a trunk (or other branch) or is it permissible to create a branch of a trunk subdirectory?

+7
svn
source share
4 answers

Nested connecting lines indicate to me a set of code with a different life cycle than the parent code. I would consider these conceptually separate projects. Also note that your repository may have several top-level projects, which should reduce support for a separate repository for each project. I consider using separate repositories when I need a separate configuration at the repository level: accessibility, transport protocol, authentication / authorization (although they can be configured in the repository).

 main_project branches tags trunk electronics software branches tags trunk 

You can then add the libs folder to main_project/trunk to compile the software form, or perhaps consider using an external SVN link to point to software/trunk from main_project/trunk .

Also, "main_project" can now be better called "electronics", in which case you will delete the additional folder "electronics" under the "trunk".

+11
source share

The short answer to all your questions: no.

I represent Abbott and Costello “who's on the first” discussion: “I combined it with the trunk” “What trunk?” "trunk of the integration branch" "So, is the trunk updated?" "What is the trunk?"

New team members will not easily adapt to a scheme that contradicts their previous experience. They will have to look for internal documentation or ask questions about what should be very simple.

Many tools and IDEs are more difficult to work with using custom layouts.

Your second question about subsets of branching / tagging a chest or branch raises more attention. with subversions cheap copies there is no benefit in space or time to fork / tag a subset - and, more importantly, your svn: mergeinfo will become less useful if people enter the / tag somewhere other than the top level.

+7
source share

I would say that it is definitely not ideal - it is very confusing very quickly. Given that it does not really take up much space to create branches / tags, there is no reason to create such a structure. Branch at the project level only IMHO.

+2
source share

Valid for whom ? There is no Pope of subversive activities, and each organization has the right to do what suits it best. The versatility of SVN that gives you this freedom is good.

-3
source share

All Articles