A merge conflict occurs when a distributed version-control system cannot automatically consolidate concurrent changes to the same code. A developer must resolve the conflicting changes manually, a situation often called “merge hell.” section 10.1
Merge conflicts arise within a distributed, branch-based change workflow:
- Contributors branch from a mainline, record changes through commits, and later merge completed work back into the mainline. section 10.1
- Merging becomes difficult when the branch has accumulated changes while the mainline has changed independently. section 10.1
- The conflict remains for a developer to reconcile because the version-control system cannot determine how to combine the changes. section 10.1
Figure 10.2 The main concepts of a DVCS, and a typical interaction
Use the distributed version-control interaction diagram to trace branching, commits, sharing, review, and merging around the point where conflicts can occur. section 10.1
