Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple feature branches and continuous integration

Tags:

I've been doing some reading about continuous integration recently and there is a scenario which could occur which I don't understand how to deal with appropriately.

We have a stable mainline/trunk branch and create branches for features. Each developer will keep their own feature branches up to date by merging from trunk into their branch on a regular basis. However it is entirely possible that two or more feature branches could be created and worked on over a period of several weeks or months. In this time many releases of the software could be deployed. This where my confusion arises.

It is very likely that changes for one feature branch will cause merge conflicts with other feature branches. CI suggests you should merge into trunk at least daily which would resolve the conflicts quickly. However, you may not want to merge the feature code into trunk because it may not be finished or you may not want that feature available in the next release. So, how do you deal with this scenario and still follow CI principles of daily code integration?

like image 985
Phil Hale Avatar asked Feb 09 '11 09:02

Phil Hale


People also ask

Which are the features of continuous integration?

Following are some of the main features or practices for Continuous Integration. Maintain a single source repository − All source code is maintained in a single repository. This avoids having source code being scattered across multiple locations.

What is branch in continuous integration?

Branch is a deployment tool designed for WordPress developers. It's CI/CD without the learning curve. There are no configuration files to learn and Branch has baked in recipes for all the big hosting platforms.

What are three advantages of continuous integration?

Continuous integration (CI) makes software development easier, faster, and less risky for developers. By automating builds and tests, developers can make smaller changes and commit them with confidence. Developers get feedback on their code sooner, increasing the overall pace of innovation.

What are the three basic steps of continuous integration?

Continuous integration, deployment, and delivery are three phases of an automated software release pipeline, including a DevOps pipeline. These three phases take software from idea to delivery to the end-user. The integration phase is the first step in the process.


1 Answers

There are no feature branches in proper CI. Use feature toggles instead.

like image 91
Aleš Roubíček Avatar answered Sep 18 '22 19:09

Aleš Roubíček