Patterns for Managing Source Code Branches