Issues with multiple long-living branches using maven

So here is Subversion, Jenkins, Beanstalk setup:

  • highway / -> main line of development
    • CI builds on checkin
    • A successful CI build spawns a CD build that encourages Beanstalk to "test".
  • branches / qa / → candidate for the current release
    • CI builds on checkin
    • A successful CI build spawns a CD build that pushes the QA Beanstalk environment.
  • branch / prod / -> current version
    • CI builds on checkin
    • A successful CI build spawns a CD build that pushes the Beanstalk Prod environment.

Basically I want to do the following:

  • Development cycle starts in the trunk (trunk: 0.1-SNAPSHOT)
  • When a development cycle is a complete branch to qa and is a qa cycle. Also start the next development cycle in the trunk (trunk 0.2-SNAPSHOT, qa: 0.1-SNAPSHOT)
  • When the qa loop completes the branch for prod and executes maven release. Also start the next qa cycle (trunk 0.2-SNAPSHOT, qa: 0.2-SNAPSHOT, prod: 0.1)

The idea is to have short sprints, where the qa cycle ends at the end of each development cycle. When the qa cycle is completed, it moves to the production environment.

I would like to save branches and merge into \ from branches instead of deleting and re-creating. The idea was that any corrections made in qa would be merged back into the intro trunk, and any changes made to prod would be merged back into qa (and back to trunk).

prod "" .

, .

:

  • ?
  • maven script ?
  • ? ?
+5
2

qa prod. . SVN, 4 /.

, QA ( ). , ( " ", ), - ( ).

:

1.0 , 2.0 QA 3.0. :

  • /trunk ( 3.0)
  • /tags/2.0 ( QA)
  • /tags/1.0 ( , )

QA 2.0, 2.0. , , 2.0.1 ( ). :

  • /trunk (, 3.0, + 2.0)
  • /branches/2.0.* ( *, , 2.0. *. , 2.0)
  • /tags/2.0 ( QA )
  • /tags/2.0.1 ( 2.0, )
  • /tags/1.0 ( , )
+7

, , , .

Domenic D. answer , , . , , .

, , , , - . SCM , , , , . , .

, , , , , "" . , - , , , , .

+1

All Articles