The built-in diff engine in BitBucket is atrocious at aligning code in the side-by-side comparison.
If I add a function in say at line 124, pushing the existing function down 10 lines to line 134, BitBucket will align the existing function to the new function at 124, even though there is an exact match to the original function 10 lines lower.
It prefers matching:
func GetConfigFileFromS3(key string) (*model.RevConfig, error) {
to:
func GetDefaultConfigFileFromS3(ItemName string) (*model.RevConfig, error) {
Its like it chooses a poor match here and can't even scan 10 lines further for an exact match.
Using BeyondCompare I can set the look ahead to 100s of lines so it will align properly even if I'm inserting large blocks of new code.