Does anyone have experience of using svn without a trunk?
We use svn for a product with an annual release cycle. All new development is done on trunk. Once a year we take a release branch, for fixing bugs reported by customers.
One slight annoyance with this model is that when we start working on version N of the product, it lives at http://svn.foo.com/trunk
, but later (after we have made the release branch) that same version lives at a different location, http://svn.foo.com/branches/N
. This means we have to update some buildbots and svn:externals and whatnot that pointed to the previous location.
In order to avoid that (amittedly minor) pain, we are considering moving to a "trunkless" model where we abandon the use of http://svn.foo.com/trunk
and always work on
for some value of N. When we start working on version N+1 we will create .../branches/N+1 as a branch of .../branches/N, and start working there.
By the time we get to version 100 we'll be working on a branch of a branch of a branch of a branch of ... 99 times over.
Does anyone have any experience of how well this works out in practice?
(In case it makes a difference: we don't tend to use a lot of feature branches, so don't tend to do many big merges. I don't expect that to change, regardless of whether or not we go trunkless.)
I'm aware of one technical problem: it'll be harder for us to do bisection on our source code, because "svn update -r X" does not let you update to a revision X that is older than when the current branch was created. I'm optimistic that this can be improved in a future version of svn.
But I'm still wondering if there are any other technical problems I should be aware of, or if there have been any relevant changes in the last 11 years of svn development.