Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 571775
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T13:32:34+00:00 2026-05-13T13:32:34+00:00

at the moment we use Subversion for source control, but all of the merging

  • 0

at the moment we use Subversion for source control, but all of the merging work for our releases is done manually. We release several times a year, so create a branch for each release. All work from earlier branches must make it into later ones. Work on later branches must not make it into earlier ones (this is in our contracts). I believe this is known as the Promotional Model.

I think the following diagram best illustrates our desired workflow, with branches being created whenever work starts on a new release, and changes flowing from earlier branches to later ones.

|
1
|
|\
| \ 
| 2 
3 | 
|\| 
4 |
| |\
5 | \
| 6 |
| | 7
|\|\|
| |\|
8 9 |\
| | | \
|\| | 10
x |\| |
  | |\|
  | | | 

a b c d
  • Would this model work smoothly using Subversion despite the lack of a meaningful trunk?
  • Would automated merge tracking work for the updates from earlier branches to later ones?
  • Would it be ok to close/delete/ignore a branch (in this example release branch ‘a’) without reintegrating?
  • Would it be ok to create feature branches off of each release branch, and would merge tracking work for these? (They would follow the recommended create/merge/reintegrate model.)

Edit – add more info.

The reason that the traditional Unstable Trunk model might not be suitable is illustrated by the following diagram. Features for each release are not necessarily completed in order of release (some customers can be slow to confirm requirements). We want to propagate changes from earlier branches to later ones as soon as possible.

    a
    |
    1
    |
   b|\ a
    | \ 
    |  2
    3  |
    |  |
    4  |
  b/|c |
  / 5  |
 |  |  6
 7  |  |
 b  c  a

In this case, we want feature 2 (completed in branch a) in branch b, but as this is a child-to-parent merge, and therefore not supported by Subversion, it will have to be done manually. Similarly, feature 6 would have to be manually merged twice. I anticipate this to be a relatively slow and error-prone process compared to automatically tracked merges.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T13:32:34+00:00Added an answer on May 13, 2026 at 1:32 pm

    If I understand your situation, there is nothing in your requirements that make things as complex as you seem to be making them. You’re also putting way too much emphasis on the merits of automatic vs. manual merging (more on that later). CVS branches would have been another matter, but not with the way SVN handles “branches” (i.e., it doesn’t).

    You could have a primary (unstable or stable) development line and create branches for each customer or release (or both). As features are validated, they either get merged back to the main line so later branches can include those changes or you always merge unidirectionally from a parent branch. Nothing requires you to close the branch and the merge is no less automated than it would have been to support your first (chaotic) diagram given you have multiple concurrent development lines.

    The requirement that you only merge forward sounds like you just need to merge subset revisions from the main line, revisions after a given branch revision. Doing your merges this way will let you merge changes from arbitrary branches back to the main line as often as you like (as they are confirmed with your customers) and can be applied forward with confidence that only validated changes are getting applied. You can set up automatic merging to track that copy revision (see –stop-on-copy and range-based merges). Release branches then pick up sets of confirmed changes that have occurred from a given point forward.

    SVN doesn’t “track merges” any more than it supports branches (which it doesn’t, they are just lightweight copies). You tell it (or svnmerge tells it) ranges to merge and it applies those changes. You can get the effect that you’re contractually required to support, regardless.

    To answer your posed questions:

    • I don’t think the model you proposed is very effective. To the contrary, it has increased potential for feature tracking chaos as you may have to scan branches for changes and merge forward multiple times. Moreover, it will undoubtedly confuse developers familiar with SVN and more traditional SVN organizational structures.

    • Sure. That should be fairly independent of the structure you chose too. You’re going to need/want to keep track of your revision points regardless (perhaps via some simple scripting at worse).

    • Sure. Branches have effectively no cost in SVN on the server side. The client side has a cost if you do entire root checkouts but that is generally a dumb thing to do regardless. Similarly, there’s no problem ignoring/deleting a branch. It’s just another change to the global revision hierarchy like any other copy/delete/rename/etc.

    • That should work regardless of the “branching” organizational structure put in place. It sounds like there is a maybe little bit of misunderstanding on what it means to be a “branch” in SVN. You should be able to set up what you want and perform ‘manual’ merges with relative ease regardless and then later set up automatic merging after a few customer updates so you can understand your merge steps a little better.

    Cheers!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm getting ready to implement a source control system (subversion) but I'm facing some
At the moment we use HSQLDB as an embedded database, but we search for
At the moment we use glassfish 3.1 as application server for our enterprise application.
I have a repository that is currently using Subversion, but I'd like to use
At this moment I use this scenario to load OpenGL texture from PNG: load
At the moment I use PHP for almost everything I develop for the Web
So right now I'm bashing my head - at the moment we use an
This question is for C# 2.0 Winform. For the moment I use checkboxes to
I have two nested loop in XSL like this, at this moment I use
At the moment when i use this, i have to re-launch the app to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.