GIT Патчи - или - Push? - PullRequest
       43

GIT Патчи - или - Push?

0 голосов
/ 21 июня 2011

Мы рассматриваем 2 способа работы с git в новом проекте:

  1. Разработчики отправляют исправления сопровождающему (который, вероятно, в конечном итоге станет одним из разработчиков), он его проверяет, тестирует и интегрирует

  2. Разработчики отправляют свои коммиты в общедоступную ветку "developers" (ветвь для каждого подмодуля проекта), сопровождающий получает уведомление по электронной почте о push-уведомлении и может просмотреть \ test \ integrate.

Конечный результат тот же - ветка, основанная на последней версии, которая содержит коммит разработчика.

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

Ответы [ 2 ]

6 голосов
/ 21 июня 2011

Почему бы не отправлять запросы и обрабатывать их?Это то, что они делают с ядром linux.

Основная проблема с общедоступной веткой разработчиков - получение ненужных вещей из ветки.Вы не хотите перебазировать опубликованную общую ветку, и возвращаться все время ужасно.Основная проблема с обычными исправлениями заключается в том, что SHA не совпадает между отправителем и получателем для одного и того же исправления (по уважительным причинам).Если бы я разрабатывал почтовую систему с патчами, я бы подумал об использовании git-bundles для получения точных SHA.Обратите внимание, что это сложный способ сделать тягу.

Другой вариант - это использовать gitolite (для обеспечения того, кому разрешено или не разрешено фиксировать в общих ветвях) и заставить разработчиков работать над ветвями «Feature» (см.http://nvie.com/posts/a-successful-git-branching-model/ и связанной с ним командой gitflow) и только разрешить доверенному разработчику выполнять слияние из ветви функций в ветку dev / master.

Вы также можете ознакомиться с рабочими процессами проверки кода gerrit и других git.

0 голосов
/ 21 июня 2011

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

Github поддерживает это уже в своем интерфейсе.

...