Проект, подобный 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
, ... но вы можете сохранить упомянутый рабочий процесс ветвления как можно более простым.