- PVSM.RU - https://www.pvsm.ru -
Всем привет! Вот и наша компания решила завести блог на Хабре (в конце концов, не вечно же читать чужие статьи). В профиле компании [1] вы можете посмотреть, чем мы занимаемся. В ближайшее время мы предложим вашему вниманию цикл статей по широкому спектру тем: от сервисов дистрибуции и поддержки тестовых сборок iOS приложений до программного управления IIS. А первая наша публикация посвящена Atlassian Stash.

На текущий день на хабре практически отсутствует какая бы то ни было информация об Atlassian Stash [2] (всего один анонс [3] и одна статья [4] на тему установки). Хотя инструмент, на самом деле, прекрасный, и определенно стоящий рассмотрения в случае использования всего стэка Atlassian. Я хочу рассказать что это такое и как эту штуку можно добавить в процесс разработки.
Небольшая предыстория — у нас появился новый заказчик и возможность построить инфраструктуру для разработки практически с нуля. Сразу захотелось сделать «всё правильно» — git/CI/code-review и т.д. Все вроде как согласны, что code-review это важно и нужно, меж тем далеко не все его используют, а если используют, то в основном некую постфактум версию — закоммитил в транк, кто-то позже посмотрел. Где-то по workflow запрещено резолвить задачу, пока кто-нибудь не посмотрел код коммита, ну или другие устно/письменно-оговорённые ограничения. Нам же хотелось сделать процесс более контролируемым с технической точки зрения.
Из решений для / с поддержкой code-review на ум пришли: TFS [5], Atlassian Stash [2], Github [6], Gerrit [7], новенький Upsource [8] от JetBrains.
Вкратце по каждому:
В итоге, решили остановиться на Stash'е. Установка/настройка/интеграция типична для всех Atlassian'овских продуктов, останавливаться на ней смысла особо нет. Поддерживается исключительно git, а требование code-review реализуется через пул-реквесты, причём возможно настраивать количество минимальных апрувов/успешных билдов, чтобы можно было смержить реквест. Билды нужны в случае интеграции с Bamboo — например, чтобы гарантировать, что в этом бранче никто не сломал юнит-тесты. Видимо, количество успешных билдов имеет смысл только в случае наличия отдельно запускаемых performance (или других, занимающих относительно долгое время и потому не выполняющихся на каждый коммит) тестов в отдельном билде. Ну, я не придумал другого применения.

Как правильно организовать ветки, чтобы потом не было мучительно больно, уже давно придумано [11] до нас, поэтому на самом workflow останавливаться не буду — просто напишу примерный алгоритм:
Видео от Atlassian с демонстрацией данного процесса:
Там показано как всё круто интегрируется, но кое-что из всего этого (например, кнопка Start Review) у нас не заработало. Возможно, проблема с версией.
Автор: sAntee
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/git/80238
Ссылки в тексте:
[1] профиле компании: http://habrahabr.ru/company/arcadia/profile/
[2] Atlassian Stash: https://www.atlassian.com/software/stash
[3] анонс: http://habrahabr.ru/post/145607/
[4] статья: http://habrahabr.ru/post/208732/
[5] TFS: http://habrahabr.ru/search/?q=tfs
[6] Github: https://github.com/features
[7] Gerrit: https://code.google.com/p/gerrit/
[8] Upsource: https://www.jetbrains.com/upsource/
[9] github.com/jquery/jquery/pull/1241/files: https://github.com/jquery/jquery/pull/1241/files
[10] хостинг: https://www.reg.ru/?rlink=reflink-717
[11] придумано: http://habrahabr.ru/post/106912/
[12] Источник: http://habrahabr.ru/post/245531/
Нажмите здесь для печати.