Завершена регистрация/предварительная проверка за Git?
Я ищу переход от TFS (Team Foundation Server) к Git, но не могу найти что-либо, соответствующее поддержке TFS для закрытых регистраций (также называемых предварительно протестированными или задержанными фиксациями).
У Atlassian Bamboo нет поддержки закрытых регистраций. TeamCity поддерживает его ( "задерживается", используя свою терминологию), но не для Git. Использование Jenkins само по себе или Jenkins + Gerrit имеет огромные недостатки и не приближается к закрытой функции регистрации в TFS. (Недостатки, объясненные создателем самого Дженкинса в этом видео: http://www.youtube.com/watch?v=LvCVw5gnAo0)
Git очень популярен (не зря), так как люди решают эту проблему? Что в настоящее время является лучшим решением?
Ответы
Ответ 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 сайт
Ответ 3
Я думаю, что после 23 октября 2013 г. ответ может быть - Автоматическое объединение в TeamCity.
Ответ 4
git имеет другую философию - коммиты легко, совершают по вашему желанию. Если что-то не так, вы можете изменить его позже. И слияния легко. Таким образом, вы можете организовать соответствующий рабочий процесс, например. разработчик мог бы зафиксировать в отдельной ветки (-ых). Когда ветка проверена, ее можно объединить в основную ветвь.
Ответ 5
Почему бы не использовать TFS в качестве центрального репозитория и использовать GIT как локальное решение DVCS?
Это позволит вам создавать и фиксировать локально, а затем толкать то, что вы хотите на сервер TFS, и делать стробированную сборку.
Иногда хорошо иметь лучшее из обоих миров...
Ответ 6
С VS Team Services (fka Visual Studio Online) и TFS 2015 или новее вы можете использовать политики веток, требующие передачи сборки для запроса на перенос как стробированный рабочий процесс проверки с помощью Git.