GIT Патчи - или - Push?
Мы рассматриваем 2 способа работы с git в новом проекте:
Разработчики отправляют патчи сопровождающему (который, вероятно, в конечном итоге станет одним из разработчиков), он их проверяет, тестирует и интегрирует
Разработчики помещают свои коммиты в общедоступную ветку "для разработчиков" (ветка для каждого подмодуля проекта), сопровождающий получает уведомление по электронной почте о push-уведомлении и может просмотреть \ test \ integrate.
Конечный результат тот же - ветка на основе последней, которая содержит коммит разработчика.
Итак, мой вопрос, что лучше? я должен использовать в разработчиков проектов с открытым исходным кодом небольшой группой? (звучит странно для меня, посылая патчи по почте парню, сидящему рядом со мной)
2 ответа
Почему бы не отправлять запросы и обрабатывать их? Это то, что они делают с ядром Linux.
Основная проблема с общедоступной веткой разработчиков - получение ненужных вещей из ветки. Вы не хотите перебазировать опубликованную общую ветку, и возвращаться все время ужасно. Основная проблема с обычными исправлениями заключается в том, что SHA не совпадает между отправителем и получателем для одного и того же исправления (по уважительным причинам). Если бы я разрабатывал почтовую систему с патчами, я бы подумал об использовании git-bundles для получения точных SHA. Обратите внимание, что это сложный способ сделать тягу.
Другой вариант - использовать gitolite (чтобы обеспечить, кому разрешено или не разрешать коммить в общих ветках), и чтобы разработчики работали над ветками "Feature" (см. http://nvie.com/posts/a-successful-git-branching-model/ и связанная с ним команда gitflow) и только позволяет доверенному разработчику выполнять слияние из ветви возможностей в ветку dev/master.
Вы также можете посмотреть рабочие процессы Gerrit и других Git-кодов.
Правильный путь - это разветвление. Это означает, что разработчики клонируют репозиторий, выполняют свою работу, и после их завершения они каким-то образом связываются с сопровождающим проекта, чтобы он мог вытащить новую ветку из внешнего репо.
Github поддерживает это уже в своем интерфейсе.