Подтвердить что ты не робот

Завершена регистрация/предварительная проверка за Git?

Я ищу переход от TFS (Team Foundation Server) к Git, но не могу найти что-либо, соответствующее поддержке TFS для закрытых регистраций (также называемых предварительно протестированными или задержанными фиксациями).

У Atlassian Bamboo нет поддержки закрытых регистраций. TeamCity поддерживает его ( "задерживается", используя свою терминологию), но не для Git. Использование Jenkins само по себе или Jenkins + Gerrit имеет огромные недостатки и не приближается к закрытой функции регистрации в TFS. (Недостатки, объясненные создателем самого Дженкинса в этом видео: http://www.youtube.com/watch?v=LvCVw5gnAo0)

Git очень популярен (не зря), так как люди решают эту проблему? Что в настоящее время является лучшим решением?

4b9b3361

Ответ 1

Мы только начали использовать git и внедрили предварительные транзакции с использованием рабочих процессов (я закончил тестирование этого только сегодня).

В основном у каждого разработчика есть персональный репозиторий, доступ к которому у них есть. Сервер сборки TeamCity в нашем случае, строит с использованием этих личных репозиториев, а затем, если успешно, толкает изменения в "зеленый" репозиторий. У Devs нет доступа для записи к "зеленым", к ним могут писать только агенты сборки TeamCity, но разработчики вытаскивают общие обновления из "зеленого".

Итак, dev тянет от "зеленого", подталкивает к личным, TeamCity строит из личного, подталкивает к зеленому.

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

enter image description here

Это больше подходит для настройки в TeamCity, так как каждый разработчик должен иметь собственную конфигурацию сборки. Какая на самом деле должна быть 2 конфигурации, поскольку TeamCity, похоже, выполняет все шаги сборки (включая заключительный шаг "push to green" ), даже если предыдущие шаги сборки терпят неудачу (например, тесты:)), а это означало, что мы должны были иметь личный построить для разработчика, а затем другую конфигурацию сборки, которая была бы зависеть от этого, что просто сделало бы push, предполагая, что сборка выполнена.

Ответ 2

Отъезд Verigreen - облегченная система регистрации на стороне сервера. Он проверяет каждую фиксацию, прежде чем она попадает в ветки, защищаемые системой. Verigreen не допустит, чтобы какая-либо неудачная попытка CI нарушила интеграцию, выпуск или любую ветвь, которая должна быть защищена. Кроме того, это бесплатный проект с открытым исходным кодом.

Как это работает: Verigreen перехватывает check-ins и запускает проверку в ad-hoc-ветке - так что в случае неудачной фиксации затрагивается только соответствующий разработчик.

  • Перехват предварительного приема перехватывает и создает специальную ветвь кода.
  • Проверка выполняется по заданию Дженкинса. Содержимое задания проверки полностью настраивается.
  • Проверенный код объединяется обратно в защищенную ветвь, тогда как неудачная фиксация блокируется уведомлением, отправленным разработчику.

введите описание изображения здесь

Решения принимаются на основе следующего потока:

Verigreen - Основной поток

Для получения дополнительной информации см. wiki или Verigreen.io сайт

Ответ 4

git имеет другую философию - коммиты легко, совершают по вашему желанию. Если что-то не так, вы можете изменить его позже. И слияния легко. Таким образом, вы можете организовать соответствующий рабочий процесс, например. разработчик мог бы зафиксировать в отдельной ветки (-ых). Когда ветка проверена, ее можно объединить в основную ветвь.

Ответ 5

Почему бы не использовать TFS в качестве центрального репозитория и использовать GIT как локальное решение DVCS?

Это позволит вам создавать и фиксировать локально, а затем толкать то, что вы хотите на сервер TFS, и делать стробированную сборку.

Иногда хорошо иметь лучшее из обоих миров...