No, you can configure CI on both mainline and each function branch, no problem.
This is still very relevant. Although automatic merge algorithms are getting better and better, including some of the semantics based mergers, it is still not possible for a computer to determine a value. Until we get real computer intelligence, it will still be a problem. The question is, what is the% of cases where automatic merging leads to an incorrect result and what% of those cases when he knows that this will lead to an incorrect result. Essentially, if you can automatically deduce all cases where automatic merging fails, you can refer them to people. But it is also difficult to solve. The worst case scenario is not when automatic merging cannot merge the code, but when it can merge it, but merges it incorrectly - usually in semantics or as a result of a race condition or some other problem that cannot be easily identified without understanding by a person.
In most branches of functions it is very useful to isolate changes in a small team that works on a function in which you are either not sure about its quality, this code can adversely affect other larger teams working on the project, or you are not sure if the function will turn it in the next version.
You want to limit the use of function branches to a minimum amount of time. Merging code between two branches with complex sets of changes can be difficult and time-consuming; complexity increases more than o (n), where n is the sum of the changes on both branches. As a rule, within 1 month you should have a really good version control system, good interfaces / code architecture or OCD developers, or a combination of the three.
About 25% of the time in the project should be devoted to reducing technical debt, which mainly includes code refactoring. In the process of refactoring, problems arise in many industries, since merging refactoring and post-refactoring branches can be extremely difficult. For this reason, you must ensure that all Feature branches are merged before refactoring begins.
Jiri klouda
source share