Я не уверен, что могу доверять Git для автоматического слияния. Вот сценарий.
Создайте программу в главном устройстве:
MOVE 0 TO I.
A.
PERFORM X-PROC.
IF I IS EQUAL TO 25 THEN GO TO A.
Разработчик 1 создает ветку и замечает, что есть ошибка: бесконечный цикл. Он исправляет это:
MOVE 0 TO I.
A.
ADD 1 TO I.
PERFORM X-PROC.
IF I IS EQUAL TO 25 THEN GO TO A.
Между тем Developer 2 создает ветку и исправляет ошибку по-своему:
MOVE 0 TO I.
A.
PERFORM X-PROC.
ADD 1 TO I.
IF I IS EQUAL TO 25 THEN GO TO A.
Оба разработчика проверяют свой код и считают его правильным. Оба объединяются с мастером:
MOVE 0 TO I.
A.
ADD 1 TO I.
PERFORM X-PROC.
ADD 1 TO I.
IF I IS EQUAL TO 25 THEN GO TO A.
Возвращается бесконечный цикл.
Мне кажется, что эта проблема часто возникает в какой-либо распределенной среде разработки. Когда я тестировал это, Git не сообщал о конфликте слиянием. Иногда эта проблема может оставаться необнаруженной в течение длительного времени. Тест на регрессию должен найти его, но тесты регрессии также объединены в Git, поэтому мы также не можем доверять им.
Что я могу сделать по этому поводу? Нужно ли читать код после каждого слияния?