At SpinDance we use Agile methods when developing software for our customers. An essential element to this Agile approach is ‘Continuous Integration’. The practice of Continuous Integration requires developers to commit their code to a shared repository on a frequent, often daily, basis. The purpose is to integrate the changes from one developer with the very latest code from all the other developers on the same project. This practice allows us to measure whether the project is progressing (new features are working correctly) or regressing (completed features are no longer working). Successful integration happens only by passing these three steps:
- conflicts among the code changes are resolved,
- the software can be built without errors or warnings, and
- the software passes all of its tests.
The first step is initiated by the developer who makes a decision that their code is ready to be submitted for integration. This developer is responsible to resolve all conflicts between their changes and the changes that other developers have made. It is, essentially, a manual process performed with the help of tools. It can be done effectively only in the context of a version control system which manages changes, detects conflicts, and requires that they be resolved before accepting the developer’s new code into the repository. Resolving these conflicts does not, however, guarantee a successful integration;…