Оптимизация git мульти-слияния с мастером - PullRequest
0 голосов
/ 31 января 2020

Учитывая набор хэшей для подсказок веток, возможно ли построить какое-то дерево, чтобы определить, какие подсказки являются кандидатами на слияние, а какие нет у текущего мастера проекта?

Я не парень по CI / CD, но я пытаюсь понять с точки зрения физики поэтов, возможно ли построить какое-то дерево, чтобы определить, какие ветви могут быть объединены с мастером а какие нет.

Уточнение

Для целей этого запроса, набор рассматриваемых советов ветвей - это ветви, которые 1) не имеют конфликтов с master и 2) прошли все CI тесты.

1 Ответ

1 голос
/ 31 января 2020

То, что вы хотите услышать - это какой-то способ проверить слияние. В общем, это сложно с командной строкой Git binary. Вы можете попытаться выполнить тестовое слияние и запустить git merge --abort, если он выходит из числа, отличного от нуля, но для этой цели лучше использовать libgit2 (или оболочку на предпочитаемом вами языке), которая предоставляет флаг GIT_MERGE_FAIL_ON_CONFLICT, который можно использовать для обнаружить этот случай без изменения хранилища.

Что касается проверки с помощью вашей системы CI или CD, чтобы увидеть, все ли тесты пройдены, предположительно, это возможно. Вы не сказали нам, какую систему используете, но у многих таких систем есть API, который вы можете использовать.

Если вы используете хостинговую платформу Git, такую ​​как GitHub, вы можете запросить ее вместо этого для этого состояния, так что вам не нужно делать это самостоятельно. GitHub имеет документацию о том, как проверить, является ли запрос на извлечение слиянием , а также есть API-интерфейс проверки, который вы можете использовать.

...