Каков наилучший способ реализовать git flow в проекте с большим количеством подмодулей? - PullRequest
1 голос
/ 09 апреля 2019

Мы создали основной проект микро-сервисов Asp.net и организовали код в один супер-проект и несколько подмодулей Git (каждый микросервис является подмодулем). Теперь мы хотим начать использовать рабочий процесс Git Flow.

Каков наилучший способ инициализации gitflow? нужно ли иметь один поток git на подмодуль ИЛИ у нас должен быть один глобальный поток git на уровне супер-проекта?

Спасибо!

1 Ответ

0 голосов
/ 09 апреля 2019

Проект, подобный readium / readium-js-viewer (с использованием подмодулей), рассматриваемый с использованием потока git и обсуждаемый в выпусках 392 .

Использование потока git подразумевало бы декомпозицию каждой команды в их эквивалент Git, используемый как:

git submodule foreach —recursive 'git checkout develop'

Но (в этом документе):

Однако этот рабочий процесс оказался несколько проблематичным по нескольким причинам.

  • У инструментов git-flow (которые по сути являются скриптами bash, вызывающими подпрограммы git из командной строки) есть ряд ошибок.
    Что наиболее важно, если возникают какие-либо проблемы с процессом слияния или выпуска, сценарии bash просто молча терпят неудачу - они работают, когда на самом деле это не так, и часто сообщают об успехе, когда это не так.
  • Git, в целом, несколько хрупок в отношении использования подмодулей. Например, если структура подмодуля изменяется (например, изменяется структура папок), тогда происходит слияние, и создание новой ветки может завершиться неудачей, поскольку git не знает, как правильно удалить устаревшие фрагменты ветки.
    Оставленные фрагменты необходимо удалить вручную.
  • Рабочий процесс git-flow кажется излишним для нашего относительно небольшого проекта (по сравнению, например, с Adobe Creative Suite, Eclipse и другими крупными проектами).
    Общая цель рабочего процесса ветки релиза - тестирование и объединение сложного проекта. Если проблемы обнаружены, их можно исправить, а результат отодвинуть для разработки.
    На практике мы редко сталкиваемся с проблемами в ветке RC, достаточно серьезными, чтобы решить их на месте и повторно объединить. Вместо этого мы просто регистрируем проблему и планируем ее исправить в следующем выпуске.

Таким образом, использование полного рабочего процесса git-flow - как инструментов, так и самого рабочего процесса - кажется не лучшим образом подходит для Readium.
Следовательно, мы предлагаем, чтобы Readium принял рабочий процесс, похожий на git-flow, но упрощенный для удовлетворения наших потребностей

Таким образом, использование веток может быть осуществлено с помощью git submodule foreach —recursive, ... но вы можете сохранить упомянутый рабочий процесс ветвления как можно более простым.

...