Иван Денисов писал(а):
Согласен, в чем-то. Вопрос? А может ли эта ветка быть master? Или master как раз за выпуски обычно отвечает? Перерисовал немного рисунок. Роман, еще что у тебя значит ветка fixes? Не совсем понял мысль.
Назначение ветки "мастер" - аккумулировать наиболее стабильные выпуски с последними исправлениями. Их в git можно помечать как "ярлыки" (tag) v0.5.0, v0.5.1 и т.д. Что касается ветки Fixes, то её назначение - это хранение исправлений, если они требуют мало-мальской объём разработки. Мелкие исправления - можно прямо в "мастер". После предварительного тестирования, конечно. Hotfixes - когда направлено на решение какой-то конкретной частной проблемы. Перед тем как выпускать новую версию, переходят в режим "заморозки" слияния новых Feature в Development. Проверяют документацию, работу программы, исправляют и тогда выпускают стабильный выпуск.
Чтобы не повторять уже написанное, направлю на статью
A successful Git branching model. Она в большей части соответствует замыслу.
Про версии. Допустим, в статье
Branching Strategies with GIT рекомендуют вести нумерацию выпусков таким образом:
x.y.z
x - опубликованная версия
y - номер спринта ("sprint" методологии разработки SCRUM)
z - исправления после публикации
И опять вижу, что ветка oberoncore вливается в ветку "мастер". Почему так? Разве она имеет какое-то авторитетное значение по сравнению с другими ветками? Если кто-то хочет предложить исправление, то это стоит делать не в своей ветке, а прямо в "мастер" или Fixes. Так что любые предлагаемые изменения должны пройти общие проверки на соответствие спецификациям, корректность реализации и т.д., а затем вливаться в Development. В специальной ветке Releases не вижу смысла. Все качают именно "master". Так что, если эта ветка будет сырой, то пользователи будут недовольны.