Branch by Abstraction
An approach to large-scale change in a codebase that allows ongoing releases whilst the change is in progress.
- assume we have client code (dependent) and supplier code (dependency)
- introduce abstraction layer between client and supplier by modifying both
- develop new supplier code
- migrate client code to use the new supplier code via the abstraction layer
- remove old supplier code
- (optional) remove abstraction layer