DUMP-2012 - Управление разработкой - "Опыт смены системы...

Preview:

Citation preview

svn → git

подводные грабли

Андрей Хитрин

Разработчик

ahitrin@naumen.ru

Константин Беклемишев

Руководитель группы

kbeklemishev@naumen.ru

Naumen Phone

• Это 10 лет разработки на C++, Python и

Java

• Гибкая масштабируемая архитектура

• Более 20-и серверных компонент

• Три интерфейса пользователя

• Две команды разработки

Что такое Naumen Phone?

• Это 10 лет разработки на C++, Python и

Java

• Гибкая масштабируемая архитектура

• Более 20-и серверных компонент

• Три интерфейса пользователя

• Две команды разработки

...и мы были счастливы с svn ;)

Что такое Naumen Phone?

Глобальные цели

Захват и полное

доминирование в

регионе APAC!

Следствие: Cмещение

фокуса с проектной

деятельности на

релизный цикл

Наследие: как оно было?

Welcome to SVN hell !

• Множество веток

• Они не синхронизируются

• Актуальна только одна

• Нет единства :(

Наследие: как оно было?

Партизаны начинают переходить на git и hg

Что мы хотим?

Версии

Удобный Code Review

Стабилизацию и Тестирование

• скорость работы

• удобное ветвление и слияние

• отдельные ветки для code review

• копирование коммитов

• эффективный поиск

• bisect

• корректировка истории

• гибкий workflow • он популярен!

Почему git?

• скорость работы

• удобное ветвление и слияние

• отдельные ветки для code review

• копирование коммитов

• эффективный поиск

• bisect

• корректировка истории

• гибкий workflow • он популярен!

Почему git?

Но его надо изучать!

Этапы переезда svn → git

• Составление git-workflow (+)

• Самостоятельное изучение githowto (-)

• Тестовый экспорт из svn в git(разбили на

несколько git-репозиториев)

Этапы переезда svn → git

• Адаптация систем сборки

• Полный переезд

• Доклад о работе с git (-)

• Мастер-класс по работе с git (+)

• Хуки, подушки и перины

Что содержит git workflow?

• Правила работы над задачей

• Правила ведения коммитов

• Подготовка к работе

• Основные операции

• Стандартные процедуры работы

git-workflow: схема репозитория

master - основная ветка разработки

stable-1.5.0 - стабильная версия

git-svn + файл авторов

Импорт

Контроль доступа

Как контролировать доступ к репозиторию?

Контроль доступа

Может, gitosis?

Контроль доступа

Какие ещё есть решения?

• GitoLitehttps://github.com/sitaramc/gitolite

• GitLab

HQhttps://github.com/gitlabhq/gitlabhq

• GitHub Enterprise

(всего $5000 в год!)

Контроль доступа

Старый добрый ssh+ldap!

Captain Hook

Captain Hook

Поганится владелец :)

Captain Hook

Лес может быстро зарасти

Captain Hook

Добавили сторожевой хук

Результаты

В гр. разработки NPO переезд удался! :)

В гр. разрабоки NP еще многое предстоит

сделать.

Что еще необходимо сделать?

• Покомпонентное дробление git-репозитория NP

• Новая система сборки NP

• Redmine 1.4+ (multi-repo на каждый проект)

Выводы

• надо много обучать

• важно понимать внутреннюю модель

• очень помогает визуализация (gitk)

• учите shell-команды git - в них самое

вкусное

• используйте хуки

• спрашивайте и узнавайте, в чём

проблемы

Recommended